Commits

M Haidar Hanif committed 9db6110

Add more various activity state condition

Save current input then restore it if apply.
Fix some typo in README.
Better string id naming.

Comments (0)

Files changed (4)

 
 Dibuat berdasarkan pengalaman akan keraguan perhitungan untuk memperkirakan biaya dari penggunaan listrik secara manual. Sebagian besar pengguna atau pelanggan listrik ingin mengetahui dan seharusnya mengetahui lebih mengenai tagihan atau biaya yang perlu disiapkan per bulan tanpa harus berada pada kondisi setelah satu bulan pemakaian listrik. Sehingga bisa menjadi alternatif untuk mengatasi keraguan jika terdapat alat elektronik baru dalam lingkungan yang digunakan. Perlu diketahui bahwa ini masih dalam tahap eksperimen dan bertujuan utama untuk edukasi karena berawal dari tugas pembelajaran.
 
+Perlu diketahui bahwa banyak sekali aplikasi seperti ini dalam berbagai bentuk seperti situs web, aplikasi, dan cara manual. Tapi yang ditekankan dalam aplikasi ini adalah penyesuaian dengan aturan PLN serta preferensi prayabar dan pascabayar.
+
 Kode sumber aplikasi ini dirilis secara terbuka ( _open source_ ) di [GitHub](https://github.com/mhaidarh/kargu).
 
 
 |    Prabayar        | Rupiah      |  46800 |
 |    Pascabayar      | Rupiah      | 106200 |
 | Pajak/Bulan        | Persen      |     10 |
-| Biaya/Bulan        | Rupiah      |        |
+| Biaya/Bulan        |             |        |
 |    Prabayar        | Rupiah      |  51480 |
 |    Pascabayar      | Rupiah      | 116820 |
 
 -  Menyiapkan pulsa/token listrik untuk berjaga-jaga bagi pelanggan listrik prabayar.
 -  Menghindari biaya keterlambatan (BK) dengan bersiap setiap bulan atau beralih ke langganan listrik prabayar.
 -  Mengcegah penyalahgunaan listrik oleh orang lain.
--  Mengotomatisasi alat elektronik dengan menjadwalkan proses. Seperti di komputer atau ponsel yang terdapat aplikasi untuk menjadwalkan kapan sistemnya akan dihibernasi ( _hibernate_ ) atau dimatikan (_ shut down _) secara otomatis setelah pemakaian tertentu. Sehingga baterai dan penggunaan energi lebih irit.
+-  Mengotomatisasi alat elektronik dengan menjadwalkan proses. Seperti di komputer atau ponsel yang terdapat aplikasi untuk menjadwalkan kapan sistemnya akan dihibernasi ( _hibernate_ ) atau dimatikan ( _shut down_ ) secara otomatis setelah pemakaian tertentu. Sehingga baterai dan penggunaan energi lebih irit.
 -  Mencegah putusya arus listrik secara tiba-tiba dengan mengetahui batas daya listrik.
 -  Mengetahui adanya Penertiban Pemakaian Tenaga Listrik (P2TL).
 -  Mengetahui adanya Hari Listrik Nasional (HLN) setiap tanggal 27 Oktober/

res/layout/activity_main.xml

     <!-- Title -->
 
     <TextView
+        android:id="@+id/title_appedition"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:text="@string/name_appedition"
             android:layout_height="wrap_content"
             android:focusable="true" />
 
-        <Button
-            android:id="@+id/button_getNumber"
-            android:text="@string/button_getInput"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:onClick="getNumber" />
-
     </LinearLayout>
 
     <!-- Additionals -->
 
     <RelativeLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
-        android:orientation="vertical"
+        android:orientation="horizontal"
         android:layout_width="match_parent"
         android:layout_height="wrap_content" >
 
         <Button
+            android:id="@+id/button_count"
+            android:text="@string/button_count"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:onClick="calculateNumber" />
+
+        <Button
             android:id="@+id/button_reset"
             android:text="@string/button_reset"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:layout_centerHorizontal="true"
-            android:layout_alignParentTop="true" />
+            android:layout_toRightOf="@+id/button_count"
+            android:layout_alignTop="@+id/button_count" />
 
     </RelativeLayout>
 

res/values/strings.xml

     <!-- Calculation -->
 
     <string name="edit_inputNumber">0</string>
-    <string name="button_getInput">Ambil</string>
+    <string name="button_count">Hitung</string>
     <string name="button_reset">Kosongkan</string>
 
     <string name="title_number">Angka yang diambil</string>

src/com/mhaidarhanif/android/kargu/MainActivity.java

 package com.mhaidarhanif.android.kargu;
 
+import android.app.ActionBar;
 import android.app.Activity;
 import android.content.Intent;
 import android.graphics.drawable.Drawable;
+import android.os.Build;
 import android.os.Bundle;
 import android.view.Menu;
 import android.view.View;
 import android.widget.EditText;
+import android.widget.TextView;
 
 public class MainActivity extends Activity {
 
-  // For complete title purpose. Will be used later.
-  // String appEditionName = getString(R.string.app_name) + " " + getString(R.string.name_edition);
-
-  public final static String EXTRA_NUMBER = "com.mhaidarhanif.android.kargu.NUMBER";
+  public static final String EXTRA_NUMBER = "com.mhaidarhanif.android.kargu.NUMBER";
   private static Drawable sLogoKargu;
 
+  // For complete title purpose. Will be used later
+  // String appEditionName = getString(R.string.name_app) + " " + getString(R.string.name_edition);
+  TextView mTextView; // Text view in layout
+  EditText mNumberInput; // First number input to fill
+
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
 
-    // Avoid leaks by keep potential used image in a static field.
+    // Avoid leaks by keep potential used image in a static field
     if (sLogoKargu == null) {
       sLogoKargu = this.getResources().getDrawable(R.drawable.ic_launcher);
     }
 
+    // Set UI layout for this activity
+    // Layout file is defined in res/layout/main_activity.xml
     setContentView(R.layout.activity_main);
+
+    // Initialize member TextView
+    mTextView = (TextView) findViewById(R.id.about_title);
+
+    // Check minimum API level number to use ActionBar API
+    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+        // Make sure app icon in action bar does not behave as a button
+        ActionBar actionBar = getActionBar();
+        actionBar.setHomeButtonEnabled(false);
+    }
+  }
+
+  @Override
+  public void onSaveInstanceState(Bundle savedInstanceState) {
+    // Save current input if apply
+    savedInstanceState.putInt(EXTRA_NUMBER, mNumberInput);
+
+    super.onSaveInstanceState(savedInstanceState);
+  }
+
+  public void onRestoreInstanceState(Bundle savedInstanceState) {
+    super.onRestoreInstanceState(savedInstanceState);
+
+    // Restore previous input number if apply
+    mNumberInput = savedInstanceState.putInt(EXTRA_NUMBER);
+  }
+
+  @Override
+  public void onDestroy() {
+    super.onDestroy();
+
+    // Stop method tracing that activity started during onCreate()
+    android.os.Debug.stopMethodTracing();
   }
 
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
-    // Inflate the menu. This adds items to the action bar if it is present.
+    // Inflate menu and add item to action bar if present
     getMenuInflater().inflate(R.menu.main, menu);
     return true;
   }
 
-  // Called when press getNumber
-  public void getNumber(View view) {
+  // Called when press calculateNumber
+  public void calculateNumber(View view) {
     Intent intent = new Intent(this, DisplayNumberActivity.class);
     EditText editText = (EditText) findViewById(R.id.edit_inputNumber);
     String number = editText.getText().toString();