From 7819587a22467c5113acf488befe64d0ab86d9de Mon Sep 17 00:00:00 2001 From: Gabriele M Date: Wed, 5 Jul 2017 23:35:14 +0200 Subject: [PATCH] Add a toolbar menu with back and refresh buttons Change theme just to make the refresh button visible without changing its color. --- AndroidManifest.xml | 2 +- res/drawable/ic_menu_refresh.xml | 11 +++++++ res/menu/menu_toolbar.xml | 9 +++++ res/values/strings.xml | 2 ++ .../lineageos/updater/UpdatesActivity.java | 33 +++++++++++++++++++ 5 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 res/drawable/ic_menu_refresh.xml create mode 100644 res/menu/menu_toolbar.xml diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 9b47ac95..07527ec2 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -14,7 +14,7 @@ android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" - android:theme="@style/Theme.AppCompat.Light"> + android:theme="@style/Theme.AppCompat.Light.DarkActionBar"> + + + + diff --git a/res/menu/menu_toolbar.xml b/res/menu/menu_toolbar.xml new file mode 100644 index 00000000..f745e598 --- /dev/null +++ b/res/menu/menu_toolbar.xml @@ -0,0 +1,9 @@ + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index aa9155d7..578c5ad0 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -48,4 +48,6 @@ Preparing for first boot Reboot + + Refresh diff --git a/src/org/lineageos/updater/UpdatesActivity.java b/src/org/lineageos/updater/UpdatesActivity.java index 006bfb8b..e3ad192f 100644 --- a/src/org/lineageos/updater/UpdatesActivity.java +++ b/src/org/lineageos/updater/UpdatesActivity.java @@ -25,15 +25,19 @@ import android.os.Bundle; import android.os.IBinder; import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.AppCompatActivity; +import android.support.v7.preference.PreferenceManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.SimpleItemAnimator; import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; import org.json.JSONException; import org.lineageos.updater.controller.UpdaterController; import org.lineageos.updater.controller.UpdaterControllerInt; import org.lineageos.updater.controller.UpdaterService; +import org.lineageos.updater.misc.Constants; import org.lineageos.updater.misc.Utils; import java.io.File; @@ -77,6 +81,8 @@ public class UpdatesActivity extends AppCompatActivity { } } }; + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @Override @@ -102,6 +108,28 @@ public class UpdatesActivity extends AppCompatActivity { super.onStop(); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.menu_toolbar, menu); + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.menu_refresh: + downloadUpdatesList(); + return true; + } + return super.onOptionsItemSelected(item); + } + + @Override + public boolean onSupportNavigateUp() { + onBackPressed(); + return true; + } + private ServiceConnection mConnection = new ServiceConnection() { @Override @@ -174,6 +202,11 @@ public class UpdatesActivity extends AppCompatActivity { try { Log.d(TAG, "List downloaded"); loadUpdatesList(); + long millis = System.currentTimeMillis(); + PreferenceManager.getDefaultSharedPreferences(UpdatesActivity.this) + .edit() + .putLong(Constants.PREF_LAST_UPDATE_CHECK, millis) + .apply(); jsonFileTmp.renameTo(jsonFile); } catch (IOException | JSONException e) { Log.e(TAG, "Could not read json", e);