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.dryo...@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.dryo...@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.dryo...@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.dryo...@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";
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to