diff --git a/launcher/src/main/java/org/cosinus/launchertv/Setup.java b/launcher/src/main/java/org/cosinus/launchertv/Setup.java
index 5b2f9da..6444409 100644
--- a/launcher/src/main/java/org/cosinus/launchertv/Setup.java
+++ b/launcher/src/main/java/org/cosinus/launchertv/Setup.java
@@ -104,6 +104,15 @@ public boolean showDate() {
return (true);
}
+ public boolean showBattery() {
+ try {
+ return (getPreferences().getBoolean(Preferences.PREFERENCE_SHOW_BATTERY, false));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return (false);
+ }
+
public boolean showNames() {
try {
return (getPreferences().getBoolean(Preferences.PREFERENCE_SHOW_NAME, true));
diff --git a/launcher/src/main/java/org/cosinus/launchertv/activities/Preferences.java b/launcher/src/main/java/org/cosinus/launchertv/activities/Preferences.java
index ef27669..757e7bd 100644
--- a/launcher/src/main/java/org/cosinus/launchertv/activities/Preferences.java
+++ b/launcher/src/main/java/org/cosinus/launchertv/activities/Preferences.java
@@ -39,6 +39,7 @@ public class Preferences extends PreferenceActivity {
public static final String PREFERENCE_TRANSPARENCY = "preference_transparency";
public static final String PREFERENCE_SCREEN_ON = "preference_screen_always_on";
public static final String PREFERENCE_SHOW_DATE = "preference_show_date";
+ public static final String PREFERENCE_SHOW_BATTERY = "preference_show_battery";
public static final String PREFERENCE_GRID_X = "preference_grid_x";
public static final String PREFERENCE_GRID_Y = "preference_grid_y";
public static final String PREFERENCE_SHOW_NAME = "preference_show_name";
diff --git a/launcher/src/main/java/org/cosinus/launchertv/fragments/ApplicationFragment.java b/launcher/src/main/java/org/cosinus/launchertv/fragments/ApplicationFragment.java
index 227d944..8cc8525 100644
--- a/launcher/src/main/java/org/cosinus/launchertv/fragments/ApplicationFragment.java
+++ b/launcher/src/main/java/org/cosinus/launchertv/fragments/ApplicationFragment.java
@@ -18,11 +18,14 @@
package org.cosinus.launchertv.fragments;
import android.app.Activity;
+import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.os.BatteryManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
@@ -32,6 +35,7 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
@@ -60,6 +64,20 @@ public class ApplicationFragment extends Fragment implements View.OnClickListene
private TextView mDate;
private DateFormat mTimeFormat;
private DateFormat mDateFormat;
+ private TextView mBatteryLevel;
+ private ImageView mBatteryIcon;
+ private BroadcastReceiver mBatteryChangedReceiver = new BroadcastReceiver(){
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ final int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, 0);
+ mBatteryLevel.setText(
+ String.format(getResources().getString(R.string.battery_level_text), level)
+ );
+ final int batteryIconId = intent.getIntExtra(BatteryManager.EXTRA_ICON_SMALL, 0);
+ mBatteryIcon.setImageDrawable(getResources().getDrawable(batteryIconId));
+ }
+ };
+ private boolean mBatteryChangedReceiverRegistered = false;
private final Handler mHandler = new Handler();
private final Runnable mTimerTick = new Runnable() {
@@ -96,6 +114,9 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
mGridView = view.findViewById(R.id.application_grid);
mClock = (TextView) view.findViewById(R.id.clock);
mDate = (TextView) view.findViewById(R.id.date);
+ final LinearLayout batteryLayout = (LinearLayout) view.findViewById(R.id.battery_layout);
+ mBatteryLevel = (TextView) view.findViewById(R.id.battery_level);
+ mBatteryIcon = (ImageView) view.findViewById(R.id.battery_icon);
mTimeFormat = android.text.format.DateFormat.getTimeFormat(getActivity());
mDateFormat = android.text.format.DateFormat.getLongDateFormat(getActivity());
@@ -106,6 +127,18 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
if (mSetup.showDate() == false)
mDate.setVisibility(View.GONE);
+ if (mSetup.showBattery()) {
+ batteryLayout.setVisibility(View.VISIBLE);
+ getActivity().registerReceiver(this.mBatteryChangedReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ mBatteryChangedReceiverRegistered = true;
+ } else {
+ batteryLayout.setVisibility(View.INVISIBLE);
+ if (mBatteryChangedReceiverRegistered) {
+ getActivity().unregisterReceiver(this.mBatteryChangedReceiver);
+ mBatteryChangedReceiverRegistered = false;
+ }
+ }
+
mSettings.setOnClickListener(this);
mGridView.setOnClickListener(this);
@@ -229,6 +262,10 @@ private void updateApplications() {
private void restartActivity() {
+ if (mBatteryChangedReceiverRegistered) {
+ getActivity().unregisterReceiver(mBatteryChangedReceiver);
+ mBatteryChangedReceiverRegistered = false;
+ }
Intent intent = getActivity().getIntent();
getActivity().finish();
startActivity(intent);
@@ -273,6 +310,10 @@ private void setApplication(PackageManager pm, ApplicationView app, String packa
public void onStart() {
super.onStart();
setClock();
+ if (mSetup.showBattery() && !mBatteryChangedReceiverRegistered) {
+ getActivity().registerReceiver(this.mBatteryChangedReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
+ mBatteryChangedReceiverRegistered = true;
+ }
mHandler.postDelayed(mTimerTick, 1000);
}
@@ -280,6 +321,9 @@ public void onStart() {
public void onPause() {
super.onPause();
mHandler.removeCallbacks(mTimerTick);
+ if (mBatteryChangedReceiverRegistered) {
+ getActivity().unregisterReceiver(this.mBatteryChangedReceiver);
+ }
}
private void setClock() {
diff --git a/launcher/src/main/res/layout/fragment_application.xml b/launcher/src/main/res/layout/fragment_application.xml
index 4a5eb76..5bb32f2 100644
--- a/launcher/src/main/res/layout/fragment_application.xml
+++ b/launcher/src/main/res/layout/fragment_application.xml
@@ -39,10 +39,12 @@
android:src="@drawable/ic_apps"
tools:ignore="ContentDescription"/>
-
+
+
+
+
+
+
+
+
+
+
+
Icon is locked by settings
Prevent icons to be accidentally removed
Lock icons
+ Zobrazit informace o baterii
+ Zobrazit stav baterie a stav na domovské obrazovce
diff --git a/launcher/src/main/res/values-fr/strings.xml b/launcher/src/main/res/values-fr/strings.xml
index 739bc5d..ee17399 100644
--- a/launcher/src/main/res/values-fr/strings.xml
+++ b/launcher/src/main/res/values-fr/strings.xml
@@ -44,4 +44,6 @@
Icone verrouillée (cf. Préférences)
Empêcher la suppression accidentelle des icones
Verrouiller les icones
+ Afficher les informations sur la batterie
+ Afficher le niveau et l\'état de la batterie sur l\'écran d\'accueil
\ No newline at end of file
diff --git a/launcher/src/main/res/values-sk/strings.xml b/launcher/src/main/res/values-sk/strings.xml
index e483f07..88bbf06 100644
--- a/launcher/src/main/res/values-sk/strings.xml
+++ b/launcher/src/main/res/values-sk/strings.xml
@@ -46,4 +46,6 @@
Icon is locked by settings
Prevent icons to be accidentally removed
Lock icons
+ Zobraziť informácie o batérii
+ Zobraziť stav batérie a stav na domovskej obrazovke
diff --git a/launcher/src/main/res/values/notrans.xml b/launcher/src/main/res/values/notrans.xml
index e5a54e0..b4a7d88 100644
--- a/launcher/src/main/res/values/notrans.xml
+++ b/launcher/src/main/res/values/notrans.xml
@@ -19,6 +19,7 @@
Simple TV Launcher
Google+
00:00
+ 42%
Sunday 1, January
Application
0.4
diff --git a/launcher/src/main/res/values/strings.xml b/launcher/src/main/res/values/strings.xml
index 036aa4d..f249f47 100644
--- a/launcher/src/main/res/values/strings.xml
+++ b/launcher/src/main/res/values/strings.xml
@@ -29,7 +29,10 @@
System settings
Open system settings
Display the date bellow time
+ Display battery level and status in home screen
Display date
+ Display battery information
+ %1d%%
Display applications names on main screen
Display names
Icons margins X
diff --git a/launcher/src/main/res/xml/preferences.xml b/launcher/src/main/res/xml/preferences.xml
index 4c6450f..b8f63e2 100644
--- a/launcher/src/main/res/xml/preferences.xml
+++ b/launcher/src/main/res/xml/preferences.xml
@@ -27,6 +27,11 @@
android:key="preference_show_date"
android:summary="@string/summary_show_date"
android:title="@string/title_show_date"/>
+