[Libreoffice-commits] core.git: 4 commits - android/sdremote
Artur Dryomov
artur.dryomov at gmail.com
Sat Sep 14 17:21:12 PDT 2013
android/sdremote/res/layout/fragment_computers_list.xml | 2
android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java | 31 +
android/sdremote/src/org/libreoffice/impressremote/fragment/ComputerConnectionFragment.java | 94 +----
android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java | 160 ++++------
android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java | 2
5 files changed, 125 insertions(+), 164 deletions(-)
New commits:
commit a5b4a547d55c23794f9b47cc194cfacab2e0e7d9
Author: Artur Dryomov <artur.dryomov at gmail.com>
Date: Sun Sep 15 02:29:10 2013 +0300
Fix possible timer duplicates.
Change-Id: I070e36c4a82ca245a641e53466cdaf10dd01e95c
diff --git a/android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java b/android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java
index 4e13910..937ccc5 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/communication/Timer.java
@@ -45,24 +45,41 @@ public class Timer implements Runnable {
return mTotalMinutes != 0;
}
+ public int getMinutesLeft() {
+ return mTotalMinutes - mPassedMinutes;
+ }
+
+ public boolean isTimeUp() {
+ return getMinutesLeft() <= 0;
+ }
+
public void start() {
if (!isSet()) {
return;
}
+ tearDownTimerHandler();
+ setUpTimerHandler();
+ }
+
+ private void tearDownTimerHandler() {
+ mTimerHandler.removeCallbacks(this);
+ }
+
+ private void setUpTimerHandler() {
mTimerHandler.postDelayed(this, TimeUnit.MINUTES.toMillis(UPDATE_PERIOD_IN_MINUTES));
}
@Override
public void run() {
- updatePassedMinutes();
+ increasePassedMinutes();
mTimerListener.onTimerUpdated();
start();
}
- private void updatePassedMinutes() {
+ private void increasePassedMinutes() {
mPassedMinutes++;
}
@@ -72,7 +89,7 @@ public class Timer implements Runnable {
}
public void pause() {
- mTimerHandler.removeCallbacks(this);
+ tearDownTimerHandler();
}
public void reset() {
@@ -83,14 +100,6 @@ public class Timer implements Runnable {
public void resume() {
start();
}
-
- public boolean isTimeUp() {
- return getMinutesLeft() <= 0;
- }
-
- public int getMinutesLeft() {
- return mTotalMinutes - mPassedMinutes;
- }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit 10ca4e0b79725729bf866aba6ba99fd5cbee859e
Author: Artur Dryomov <artur.dryomov at gmail.com>
Date: Sun Sep 15 00:43:16 2013 +0300
Fix possible NPE.
Well, try to fix them.
Change-Id: I8f774d35a304367bbdd1778628a1224031355ed4
diff --git a/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java b/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
index 81e6ed9..5527ea4 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
@@ -167,6 +167,10 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
}
private void loadComputers() {
+ if (!isVisible()) {
+ return;
+ }
+
if (getComputers().isEmpty()) {
hideComputersList();
setUpProgressMessage();
@@ -225,6 +229,10 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
@Override
public void run() {
+ if (!isVisible()) {
+ return;
+ }
+
if (!isShowingProgressMessageRequired()) {
return;
}
commit 57e171b3933b8afca1ae4cdd63b87486f18161ba
Author: Artur Dryomov <artur.dryomov at gmail.com>
Date: Sun Sep 15 00:06:54 2013 +0300
Change the computers fragment to be more simple.
Change-Id: I8acddd744e11aa3c29ba281b321a4e02347a1823
diff --git a/android/sdremote/res/layout/fragment_computers_list.xml b/android/sdremote/res/layout/fragment_computers_list.xml
index c780bab..46cb106 100644
--- a/android/sdremote/res/layout/fragment_computers_list.xml
+++ b/android/sdremote/res/layout/fragment_computers_list.xml
@@ -8,7 +8,7 @@
<LinearLayout
android:animateLayoutChanges="true"
- android:id="@+id/container_progress"
+ android:id="@+id/layout_progress"
android:orientation="vertical"
android:gravity="center"
android:paddingLeft="@dimen/padding_horizontal_progress_layout"
diff --git a/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java b/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
index 7cd6033..81e6ed9 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
@@ -52,8 +52,6 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
WIFI, BLUETOOTH
}
- private Type mType;
-
private CommunicationService mCommunicationService;
private BroadcastReceiver mIntentsReceiver;
@@ -77,8 +75,6 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
public void onCreate(Bundle aSavedInstanceState) {
super.onCreate(aSavedInstanceState);
- mType = (Type) getArguments().getSerializable(Fragments.Arguments.TYPE);
-
setUpActionBar();
}
@@ -95,13 +91,17 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
public void onViewStateRestored(Bundle aSavedInstanceState) {
super.onViewStateRestored(aSavedInstanceState);
- if (aSavedInstanceState == null) {
+ if (!isSavedInstanceValid(aSavedInstanceState)) {
return;
}
loadProgressMessage(aSavedInstanceState);
}
+ private boolean isSavedInstanceValid(Bundle aSavedInstanceState) {
+ return aSavedInstanceState != null;
+ }
+
private void loadProgressMessage(Bundle aSavedInstanceState) {
boolean aProgressMessageDisplayed = aSavedInstanceState.getBoolean(SavedStates.Keys.PROGRESS_MESSAGE);
@@ -110,6 +110,37 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
}
}
+ private void showProgressMessage() {
+ TextView aProgressMessageView = getProgressMessageView();
+ Animation aFadeInAnimation = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in);
+
+ aProgressMessageView.setText(getProgressMessage());
+
+ aProgressMessageView.startAnimation(aFadeInAnimation);
+ aProgressMessageView.setVisibility(View.VISIBLE);
+ }
+
+ private TextView getProgressMessageView() {
+ return (TextView) getView().findViewById(R.id.text_progress_message);
+ }
+
+ private String getProgressMessage() {
+ switch (getType()) {
+ case WIFI:
+ return getString(R.string.message_search_wifi);
+
+ case BLUETOOTH:
+ return getString(R.string.message_search_bluetooth);
+
+ default:
+ return "";
+ }
+ }
+
+ private Type getType() {
+ return (Type) getArguments().getSerializable(Fragments.Arguments.TYPE);
+ }
+
@Override
public void onActivityCreated(Bundle aSavedInstanceState) {
super.onActivityCreated(aSavedInstanceState);
@@ -132,22 +163,10 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
}
private void startComputersSearch() {
- if (!isServiceBound()) {
- return;
- }
-
mCommunicationService.startServersSearch();
}
- private boolean isServiceBound() {
- return mCommunicationService != null;
- }
-
private void loadComputers() {
- if (!isServiceBound()) {
- return;
- }
-
if (getComputers().isEmpty()) {
hideComputersList();
setUpProgressMessage();
@@ -173,7 +192,7 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
}
private boolean isComputerSupportsRequiredType(Server aComputer) {
- switch (mType) {
+ switch (getType()) {
case WIFI:
return aComputer.getProtocol() == Server.Protocol.TCP;
@@ -186,28 +205,18 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
}
private void hideComputersList() {
- showView(getProgressBarLayout());
+ setCurrentView(R.id.layout_progress);
}
- private void showView(View aView) {
- ViewAnimator aViewAnimator = getViewAnimator();
-
- int aViewIndex = aViewAnimator.indexOfChild(aView);
- int aCurrentViewIndex = aViewAnimator.getDisplayedChild();
+ private void setCurrentView(int aViewId) {
+ ViewAnimator aViewAnimator = (ViewAnimator) getView().findViewById(R.id.view_animator);
+ View aView = getView().findViewById(aViewId);
- if (aViewIndex == aCurrentViewIndex) {
+ if (aViewId == aViewAnimator.getCurrentView().getId()) {
return;
}
- aViewAnimator.setDisplayedChild(aViewIndex);
- }
-
- private ViewAnimator getViewAnimator() {
- return (ViewAnimator) getView().findViewById(R.id.view_animator);
- }
-
- private ViewGroup getProgressBarLayout() {
- return (ViewGroup) getView().findViewById(R.id.container_progress);
+ aViewAnimator.setDisplayedChild(aViewAnimator.indexOfChild(aView));
}
private void setUpProgressMessage() {
@@ -216,58 +225,21 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
@Override
public void run() {
- if (!isAdded()) {
+ if (!isShowingProgressMessageRequired()) {
return;
}
- if (isShowingProgressMessageRequired()) {
- showProgressMessage();
- }
+ showProgressMessage();
}
private boolean isShowingProgressMessageRequired() {
return getProgressMessageView().getVisibility() == View.INVISIBLE;
}
- private TextView getProgressMessageView() {
- return (TextView) getView().findViewById(R.id.text_progress_message);
- }
-
- private void showProgressMessage() {
- TextView aProgressMessageView = getProgressMessageView();
- Animation aFadeInAnimation = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in);
-
- aProgressMessageView.setText(getProgressMessage());
-
- aProgressMessageView.startAnimation(aFadeInAnimation);
- aProgressMessageView.setVisibility(View.VISIBLE);
- }
-
- private String getProgressMessage() {
- switch (mType) {
- case WIFI:
- return getString(R.string.message_search_wifi);
-
- case BLUETOOTH:
- return getString(R.string.message_search_bluetooth);
-
- default:
- return "";
- }
- }
-
private void tearDownComputersAdapter() {
setListAdapter(null);
}
- private void showComputersList() {
- showView(getComputersList());
- }
-
- private ListView getComputersList() {
- return (ListView) getView().findViewById(android.R.id.list);
- }
-
private void setUpComputersAdapter() {
if (isComputersAdapterExist()) {
return;
@@ -289,6 +261,15 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
getComputersAdapter().add(getComputers());
}
+ private void showComputersList() {
+ setCurrentView(android.R.id.list);
+ }
+
+ @Override
+ public void onServiceDisconnected(ComponentName aComponentName) {
+ mCommunicationService = null;
+ }
+
@Override
public void onStart() {
super.onStart();
@@ -296,6 +277,10 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
registerIntentsReceiver();
setUpContextMenu();
+ if (!isServiceBound()) {
+ return;
+ }
+
startComputersSearch();
loadComputers();
}
@@ -380,6 +365,10 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(aIntent);
}
+ private boolean isServiceBound() {
+ return mCommunicationService != null;
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem aMenuItem) {
switch (aMenuItem.getItemId()) {
@@ -425,6 +414,10 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
public void onListItemClick(ListView aListView, View aView, int aPosition, long aId) {
Server aComputer = getComputersAdapter().getItem(aPosition);
+ startConnectionActivity(aComputer);
+ }
+
+ private void startConnectionActivity(Server aComputer) {
Intent aIntent = Intents.buildComputerConnectionIntent(getActivity(), aComputer);
startActivity(aIntent);
}
@@ -438,6 +431,10 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
unregisterIntentsReceiver();
}
+ private void stopComputersSearch() {
+ mCommunicationService.stopServersSearch();
+ }
+
private void unregisterIntentsReceiver() {
try {
getBroadcastManager().unregisterReceiver(mIntentsReceiver);
@@ -447,14 +444,6 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
}
}
- private void stopComputersSearch() {
- if (!isServiceBound()) {
- return;
- }
-
- mCommunicationService.stopServersSearch();
- }
-
@Override
public void onSaveInstanceState(Bundle aOutState) {
super.onSaveInstanceState(aOutState);
@@ -476,17 +465,8 @@ public class ComputersFragment extends SherlockListFragment implements ServiceCo
}
private void unbindService() {
- if (!isServiceBound()) {
- return;
- }
-
getActivity().unbindService(this);
}
-
- @Override
- public void onServiceDisconnected(ComponentName aComponentName) {
- mCommunicationService = null;
- }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
commit a703824aaf4d1446bf65881702ed8e343e2b8399
Author: Artur Dryomov <artur.dryomov at gmail.com>
Date: Sat Sep 14 23:42:46 2013 +0300
Change the connection fragment to be more simple.
Change-Id: Ib9dcc70b87631cfdace00d5b9ba18f2cbdf0de2c
diff --git a/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputerConnectionFragment.java b/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputerConnectionFragment.java
index b1ddc76..72bf755 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputerConnectionFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputerConnectionFragment.java
@@ -20,8 +20,6 @@ import android.support.v4.content.LocalBroadcastManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.LinearLayout;
-import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.ViewAnimator;
@@ -82,19 +80,30 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
public void onViewStateRestored(Bundle aSavedInstanceState) {
super.onViewStateRestored(aSavedInstanceState);
- if (aSavedInstanceState == null) {
+ if (!isSavedInstanceValid(aSavedInstanceState)) {
return;
}
- loadLayout(aSavedInstanceState);
+ loadCurrentView(aSavedInstanceState);
loadPin(aSavedInstanceState);
loadErrorMessage(aSavedInstanceState);
}
- private void loadLayout(Bundle aSavedInstanceState) {
- int aLayoutIndex = aSavedInstanceState.getInt(SavedStates.Keys.LAYOUT_INDEX);
+ private boolean isSavedInstanceValid(Bundle aSavedInstanceState) {
+ return aSavedInstanceState != null;
+ }
+
+ private void loadCurrentView(Bundle aSavedInstanceState) {
+ int aCurrentViewId = aSavedInstanceState.getInt(SavedStates.Keys.CURRENT_VIEW_ID);
+
+ setCurrentView(aCurrentViewId);
+ }
+
+ private void setCurrentView(int aViewId) {
+ ViewAnimator aViewAnimator = getViewAnimator();
+ View aView = getView().findViewById(aViewId);
- getViewAnimator().setDisplayedChild(aLayoutIndex);
+ aViewAnimator.setDisplayedChild(aViewAnimator.indexOfChild(aView));
}
private ViewAnimator getViewAnimator() {
@@ -142,10 +151,6 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
}
private void connectComputer() {
- if (!isServiceBound()) {
- return;
- }
-
if (!isComputerConnectionRequired()) {
return;
}
@@ -153,16 +158,8 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
mCommunicationService.connectServer(getComputer());
}
- private boolean isServiceBound() {
- return mCommunicationService != null;
- }
-
private boolean isComputerConnectionRequired() {
- return getViewAnimator().getDisplayedChild() == getViewAnimator().indexOfChild(getProgressBar());
- }
-
- private ProgressBar getProgressBar() {
- return (ProgressBar) getView().findViewById(R.id.progress_bar);
+ return getViewAnimator().getCurrentView().getId() == R.id.progress_bar;
}
private Server getComputer() {
@@ -238,18 +235,7 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
private void setUpPinValidationInstructions(String aPin) {
getPinTextView().setText(aPin);
- showPinValidationLayout();
- }
-
- private void showPinValidationLayout() {
- ViewAnimator aViewAnimator = getViewAnimator();
- LinearLayout aValidationLayout = getPinValidationLayout();
-
- aViewAnimator.setDisplayedChild(aViewAnimator.indexOfChild(aValidationLayout));
- }
-
- private LinearLayout getPinValidationLayout() {
- return (LinearLayout) getView().findViewById(R.id.layout_pin_validation);
+ setCurrentView(R.id.layout_pin_validation);
}
private void setUpPresentation() {
@@ -265,7 +251,7 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
TextView aSecondaryMessageTextView = getSecondaryErrorMessageTextView();
aSecondaryMessageTextView.setText(buildSecondaryErrorMessage());
- showErrorMessageLayout();
+ setCurrentView(R.id.layout_error_message);
}
private String buildSecondaryErrorMessage() {
@@ -281,17 +267,6 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
}
}
- private void showErrorMessageLayout() {
- ViewAnimator aViewAnimator = getViewAnimator();
- LinearLayout aMessageLayout = getErrorMessageLayout();
-
- aViewAnimator.setDisplayedChild(aViewAnimator.indexOfChild(aMessageLayout));
- }
-
- private LinearLayout getErrorMessageLayout() {
- return (LinearLayout) getView().findViewById(R.id.layout_error_message);
- }
-
private void refreshActionBarMenu() {
getSherlockActivity().supportInvalidateOptionsMenu();
}
@@ -311,14 +286,18 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
return false;
}
- return getViewAnimator().getCurrentView().getId() == R.id.layout_error_message;
+ return getCurrentViewId() == R.id.layout_error_message;
+ }
+
+ private int getCurrentViewId() {
+ return getViewAnimator().getCurrentView().getId();
}
@Override
public boolean onOptionsItemSelected(MenuItem aMenuItem) {
switch (aMenuItem.getItemId()) {
case R.id.menu_reconnect:
- showProgressBar();
+ setCurrentView(R.id.progress_bar);
connectComputer();
refreshActionBarMenu();
return true;
@@ -328,13 +307,6 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
}
}
- private void showProgressBar() {
- ViewAnimator aViewAnimator = getViewAnimator();
- ProgressBar aProgressBar = getProgressBar();
-
- aViewAnimator.setDisplayedChild(aViewAnimator.indexOfChild(aProgressBar));
- }
-
@Override
public void onStop() {
super.onStop();
@@ -355,15 +327,15 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
public void onSaveInstanceState(Bundle aOutState) {
super.onSaveInstanceState(aOutState);
- saveLayout(aOutState);
+ saveCurrentView(aOutState);
savePin(aOutState);
saveErrorMessage(aOutState);
}
- private void saveLayout(Bundle aOutState) {
- int aLayoutIndex = getViewAnimator().getDisplayedChild();
+ private void saveCurrentView(Bundle aOutState) {
+ int aCurrentViewId = getCurrentViewId();
- aOutState.putInt(SavedStates.Keys.LAYOUT_INDEX, aLayoutIndex);
+ aOutState.putInt(SavedStates.Keys.CURRENT_VIEW_ID, aCurrentViewId);
}
private void savePin(Bundle aOutState) {
@@ -388,10 +360,6 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
}
private void disconnectComputer() {
- if (!isServiceBound()) {
- return;
- }
-
if (!isDisconnectRequired()) {
return;
}
@@ -404,10 +372,6 @@ public class ComputerConnectionFragment extends SherlockFragment implements Serv
}
private void unbindService() {
- if (!isServiceBound()) {
- return;
- }
-
getActivity().unbindService(this);
}
}
diff --git a/android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java b/android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java
index e3e37b2..682632c 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/util/SavedStates.java
@@ -16,8 +16,8 @@ public final class SavedStates {
private Keys() {
}
+ public static final String CURRENT_VIEW_ID = "CURRENT_VIEW_ID";
public static final String ERROR_MESSAGE = "ERROR_MESSAGE";
- public static final String LAYOUT_INDEX = "LAYOUT_INDEX";
public static final String MODE = "MODE";
public static final String PIN = "PIN";
public static final String PROGRESS_MESSAGE = "PROGRESS_MESSAGE";
More information about the Libreoffice-commits
mailing list