summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/sdremote/src/org/libreoffice/impressremote/activity/ComputersActivity.java107
-rw-r--r--android/sdremote/src/org/libreoffice/impressremote/activity/SettingsActivity.java15
-rw-r--r--android/sdremote/src/org/libreoffice/impressremote/communication/BluetoothServersFinder.java29
-rw-r--r--android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java121
4 files changed, 57 insertions, 215 deletions
diff --git a/android/sdremote/src/org/libreoffice/impressremote/activity/ComputersActivity.java b/android/sdremote/src/org/libreoffice/impressremote/activity/ComputersActivity.java
index f75d197f8c8c..0c7bd685640b 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/activity/ComputersActivity.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/activity/ComputersActivity.java
@@ -36,10 +36,24 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
super.onCreate(aSavedInstanceState);
saveBluetoothState(aSavedInstanceState);
- enableBluetooth();
+ BluetoothOperator.enable();
+
+ // Looks hacky but it seems to be the best way to set activity’s title
+ // different to application’s label. The other way is setting title
+ // to intents filter but it shows wrong label for recent apps screen then.
+
+ ActionBar aActionBar = getSupportActionBar();
+
+ aActionBar.setTitle(R.string.title_computers);
+ aActionBar.setDisplayShowTitleEnabled(true);
- setUpTitle();
- setUpContent();
+ if (BluetoothOperator.isAvailable()) {
+ setUpComputersLists();
+ }
+ else {
+ Fragment aComputersFragment = ComputersFragment.newInstance(ComputersFragment.Type.WIFI);
+ Fragments.Operator.add(this, aComputersFragment);
+ }
}
private void saveBluetoothState(Bundle aSavedInstanceState) {
@@ -63,50 +77,22 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
return aSavedInstanceState.getBoolean(SavedStates.Keys.BLUETOOTH_ENABLED);
}
- private void enableBluetooth() {
- BluetoothOperator.enable();
- }
-
- private void setUpTitle() {
- // Looks hacky but it seems to be the best way to set activity’s title
- // different to application’s label. The other way is setting title
- // to intents filter but it shows wrong label for recent apps screen then.
-
- ActionBar aActionBar = getSupportActionBar();
-
- aActionBar.setTitle(R.string.title_computers);
- aActionBar.setDisplayShowTitleEnabled(true);
- }
-
- private void setUpContent() {
- if (areMultipleComputersTypesAvailable()) {
- setUpComputersLists();
- }
- else {
- setUpComputersList();
- }
- }
-
- private boolean areMultipleComputersTypesAvailable() {
- return BluetoothOperator.isAvailable();
- }
-
private void setUpComputersLists() {
setContentView(R.layout.activity_computers);
- setUpTabs();
- setUpComputersPager();
-
- setUpSavedTab();
- }
-
- private void setUpTabs() {
ActionBar aActionBar = getSupportActionBar();
aActionBar.addTab(buildActionBarTab(
R.string.title_bluetooth), ComputersPagerAdapter.PagesIndices.BLUETOOTH);
aActionBar.addTab(buildActionBarTab(
R.string.title_wifi), ComputersPagerAdapter.PagesIndices.WIFI);
+
+ ViewPager aComputersPager = getComputersPager();
+
+ aComputersPager.setAdapter(new ComputersPagerAdapter(getSupportFragmentManager()));
+ aComputersPager.setOnPageChangeListener(this);
+
+ getSupportActionBar().setSelectedNavigationItem(loadTabIndex());
}
private ActionBar.Tab buildActionBarTab(int aTitleResourceId) {
@@ -122,17 +108,13 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
public void onTabSelected(ActionBar.Tab aTab, FragmentTransaction aTransaction) {
getComputersPager().setCurrentItem(aTab.getPosition());
- refreshActionBarMenu();
+ supportInvalidateOptionsMenu();
}
private ViewPager getComputersPager() {
return (ViewPager) findViewById(R.id.pager_computers);
}
- private void refreshActionBarMenu() {
- supportInvalidateOptionsMenu();
- }
-
@Override
public void onTabUnselected(ActionBar.Tab aTab, FragmentTransaction aTransaction) {
}
@@ -141,17 +123,6 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
public void onTabReselected(ActionBar.Tab aTab, FragmentTransaction aTransaction) {
}
- private void setUpComputersPager() {
- ViewPager aComputersPager = getComputersPager();
-
- aComputersPager.setAdapter(buildComputersPagerAdapter());
- aComputersPager.setOnPageChangeListener(this);
- }
-
- private PagerAdapter buildComputersPagerAdapter() {
- return new ComputersPagerAdapter(getSupportFragmentManager());
- }
-
@Override
public void onPageSelected(int aPosition) {
getSupportActionBar().setSelectedNavigationItem(aPosition);
@@ -165,22 +136,12 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
public void onPageScrollStateChanged(int aPosition) {
}
- private void setUpSavedTab() {
- getSupportActionBar().setSelectedNavigationItem(loadTabIndex());
- }
-
private int loadTabIndex() {
Preferences aPreferences = Preferences.getApplicationStatesInstance(this);
return aPreferences.getInt(Preferences.Keys.SELECTED_COMPUTERS_TAB_INDEX);
}
- private void setUpComputersList() {
- Fragment aComputersFragment = ComputersFragment.newInstance(ComputersFragment.Type.WIFI);
-
- Fragments.Operator.add(this, aComputersFragment);
- }
-
@Override
public boolean onCreateOptionsMenu(Menu aMenu) {
getMenuInflater().inflate(R.menu.menu_action_bar_computers, aMenu);
@@ -190,7 +151,7 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
@Override
public boolean onPrepareOptionsMenu(Menu aMenu) {
- if (!areMultipleComputersTypesAvailable()) {
+ if (!BluetoothOperator.isAvailable()) {
return super.onPrepareOptionsMenu(aMenu);
}
@@ -250,10 +211,6 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
protected void onStop() {
super.onStop();
- saveTabIndex();
- }
-
- private void saveTabIndex() {
Preferences aPreferences = Preferences.getApplicationStatesInstance(this);
int aTabIndex = getSupportActionBar().getSelectedNavigationIndex();
@@ -264,10 +221,6 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
protected void onSaveInstanceState(Bundle aSavedInstanceState) {
super.onSaveInstanceState(aSavedInstanceState);
- rememberBluetoothState(aSavedInstanceState);
- }
-
- private void rememberBluetoothState(Bundle aSavedInstanceState) {
aSavedInstanceState.putBoolean(SavedStates.Keys.BLUETOOTH_ENABLED, mBluetoothWasEnabled);
}
@@ -275,10 +228,6 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
protected void onDestroy() {
super.onDestroy();
- restoreBluetoothState();
- }
-
- private void restoreBluetoothState() {
if (!BluetoothOperator.isAvailable()) {
return;
}
@@ -287,10 +236,6 @@ public class ComputersActivity extends ActionBarActivity implements ActionBar.Ta
return;
}
- disableBluetooth();
- }
-
- private void disableBluetooth() {
BluetoothOperator.disable();
}
}
diff --git a/android/sdremote/src/org/libreoffice/impressremote/activity/SettingsActivity.java b/android/sdremote/src/org/libreoffice/impressremote/activity/SettingsActivity.java
index 762c49771d0c..b7964299be92 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/activity/SettingsActivity.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/activity/SettingsActivity.java
@@ -19,15 +19,6 @@ public class SettingsActivity extends PreferenceActivity {
protected void onCreate(Bundle aSavedInstanceState) {
super.onCreate(aSavedInstanceState);
- setUpPreferences();
- }
-
- private void setUpPreferences() {
- // This action is deprecated
- // but we still need to target pre-Honeycomb devices.
-
- // TODO: try to use a fragment depending on platform version
-
addPreferencesFromResource(R.xml.preferences);
}
@@ -35,17 +26,13 @@ public class SettingsActivity extends PreferenceActivity {
public boolean onOptionsItemSelected(MenuItem aMenuItem) {
switch (aMenuItem.getItemId()) {
case android.R.id.home:
- navigateUp();
+ finish();
return true;
default:
return super.onOptionsItemSelected(aMenuItem);
}
}
-
- private void navigateUp() {
- finish();
- }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/android/sdremote/src/org/libreoffice/impressremote/communication/BluetoothServersFinder.java b/android/sdremote/src/org/libreoffice/impressremote/communication/BluetoothServersFinder.java
index 29e9b9c1a051..ac6cdc34d1b5 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/communication/BluetoothServersFinder.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/communication/BluetoothServersFinder.java
@@ -89,8 +89,7 @@ class BluetoothServersFinder extends BroadcastReceiver implements ServersFinder,
if (BluetoothDevice.ACTION_FOUND.equals(aIntent.getAction())) {
BluetoothDevice aBluetoothDevice = aIntent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
- addServer(buildServer(aBluetoothDevice));
- callUpdatingServersList();
+ addServer(aBluetoothDevice);
}
}
@@ -111,17 +110,16 @@ class BluetoothServersFinder extends BroadcastReceiver implements ServersFinder,
public void run() {
BluetoothOperator.getAdapter().startDiscovery();
}
-
- private void addServer(Server aServer) {
- mServers.put(aServer.getAddress(), aServer);
- }
-
- private Server buildServer(BluetoothDevice aBluetoothDevice) {
+ private void addServer(BluetoothDevice aBluetoothDevice) {
Server.Type aServerType = buildServerType(aBluetoothDevice);
String aServerAddress = aBluetoothDevice.getAddress();
String aServerName = aBluetoothDevice.getName();
- return Server.newBluetoothInstance(aServerType, aServerAddress, aServerName);
+ Server aServer = Server.newBluetoothInstance(aServerType, aServerAddress, aServerName);
+ mServers.put(aServer.getAddress(), aServer);
+
+ Intent bIntent = Intents.buildServersListChangedIntent();
+ LocalBroadcastManager.getInstance(mContext).sendBroadcast(bIntent);
}
private Server.Type buildServerType(BluetoothDevice aBluetoothDevice) {
@@ -139,29 +137,20 @@ class BluetoothServersFinder extends BroadcastReceiver implements ServersFinder,
}
}
- private void callUpdatingServersList() {
- Intent aIntent = Intents.buildServersListChangedIntent();
- LocalBroadcastManager.getInstance(mContext).sendBroadcast(aIntent);
- }
-
@Override
public void stopSearch() {
if (!BluetoothOperator.isAvailable()) {
return;
}
- tearDownBluetoothActionsReceiver();
-
- BluetoothOperator.getAdapter().cancelDiscovery();
- }
-
- private void tearDownBluetoothActionsReceiver() {
try {
mContext.unregisterReceiver(this);
} catch (IllegalArgumentException e) {
// Receiver not registered.
// Fixed in Honeycomb: Android’s issue #6191.
}
+
+ BluetoothOperator.getAdapter().cancelDiscovery();
}
@Override
diff --git a/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java b/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
index bd80f6cfc65f..ff061e655b36 100644
--- a/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
+++ b/android/sdremote/src/org/libreoffice/impressremote/fragment/ComputersFragment.java
@@ -76,10 +76,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
public void onCreate(Bundle aSavedInstanceState) {
super.onCreate(aSavedInstanceState);
- setUpActionBar();
- }
-
- private void setUpActionBar() {
setHasOptionsMenu(true);
}
@@ -92,21 +88,8 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
public void onViewStateRestored(Bundle aSavedInstanceState) {
super.onViewStateRestored(aSavedInstanceState);
- 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);
-
- if (aProgressMessageDisplayed) {
+ if (aSavedInstanceState != null
+ && aSavedInstanceState.getBoolean(SavedStates.Keys.PROGRESS_MESSAGE)) {
showProgressMessage();
showLearnMoreMessage();
}
@@ -127,7 +110,7 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
}
private void showLearnMoreMessage() {
- TextView learnMoreView = getLearnMoreView();
+ TextView learnMoreView = (TextView) getView().findViewById(R.id.text_learn_more);
Animation aFadeInAnimation = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in);
learnMoreView.setMovementMethod(LinkMovementMethod.getInstance());
@@ -136,10 +119,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
learnMoreView.setVisibility(View.VISIBLE);
}
- private TextView getLearnMoreView() {
- return (TextView) getView().findViewById(R.id.text_learn_more);
- }
-
private String getProgressMessage() {
switch (getType()) {
case WIFI:
@@ -161,10 +140,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
public void onActivityCreated(Bundle aSavedInstanceState) {
super.onActivityCreated(aSavedInstanceState);
- bindService();
- }
-
- private void bindService() {
Intent aServiceIntent = Intents.buildCommunicationServiceIntent(getActivity());
getActivity().bindService(aServiceIntent, this, Context.BIND_AUTO_CREATE);
}
@@ -187,15 +162,22 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
return;
}
- if (getComputers().isEmpty()) {
- hideComputersList();
+ List<Server> computerList = getComputers();
+ if (computerList.isEmpty()) {
+ setCurrentView(R.id.layout_progress);
+
setUpProgressMessage();
- tearDownComputersAdapter();
- }
- else {
- setUpComputersAdapter();
- fillComputersAdapter();
- showComputersList();
+
+ setListAdapter(null);
+ } else {
+ if (getComputersAdapter() == null) {
+ setListAdapter(new ComputersAdapter(getActivity()));
+ }
+
+ getComputersAdapter().clear();
+ getComputersAdapter().add(computerList);
+
+ setCurrentView(android.R.id.list);
}
}
@@ -224,10 +206,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
}
}
- private void hideComputersList() {
- setCurrentView(R.id.layout_progress);
- }
-
private void setCurrentView(int aViewId) {
ViewAnimator aViewAnimator = (ViewAnimator) getView().findViewById(R.id.view_animator);
View aView = getView().findViewById(aViewId);
@@ -261,35 +239,10 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
return getProgressMessageView().getVisibility() == View.INVISIBLE;
}
- private void tearDownComputersAdapter() {
- setListAdapter(null);
- }
-
- private void setUpComputersAdapter() {
- if (isComputersAdapterExist()) {
- return;
- }
-
- setListAdapter(new ComputersAdapter(getActivity()));
- }
-
- private boolean isComputersAdapterExist() {
- return getComputersAdapter() != null;
- }
-
private ComputersAdapter getComputersAdapter() {
return (ComputersAdapter) getListAdapter();
}
- private void fillComputersAdapter() {
- getComputersAdapter().clear();
- getComputersAdapter().add(getComputers());
- }
-
- private void showComputersList() {
- setCurrentView(android.R.id.list);
- }
-
@Override
public void onServiceDisconnected(ComponentName aComponentName) {
mCommunicationService = null;
@@ -302,7 +255,7 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
registerIntentsReceiver();
setUpContextMenu();
- if (!isServiceBound()) {
+ if (mCommunicationService == null) {
return;
}
@@ -312,7 +265,8 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
private void registerIntentsReceiver() {
mIntentsReceiver = new IntentsReceiver(this);
- IntentFilter aIntentFilter = buildIntentsReceiverFilter();
+ IntentFilter aIntentFilter = new IntentFilter();
+ aIntentFilter.addAction(Intents.Actions.SERVERS_LIST_CHANGED);
getBroadcastManager().registerReceiver(mIntentsReceiver, aIntentFilter);
}
@@ -332,13 +286,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
}
}
- private IntentFilter buildIntentsReceiverFilter() {
- IntentFilter aIntentFilter = new IntentFilter();
- aIntentFilter.addAction(Intents.Actions.SERVERS_LIST_CHANGED);
-
- return aIntentFilter;
- }
-
private LocalBroadcastManager getBroadcastManager() {
Context aContext = getActivity().getApplicationContext();
@@ -390,10 +337,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(aIntent);
}
- private boolean isServiceBound() {
- return mCommunicationService != null;
- }
-
@Override
public boolean onOptionsItemSelected(MenuItem aMenuItem) {
switch (aMenuItem.getItemId()) {
@@ -451,20 +394,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
public void onStop() {
super.onStop();
- stopComputersSearch();
-
- unregisterIntentsReceiver();
- }
-
- private void stopComputersSearch() {
- if (!isServiceBound()) {
- return;
- }
-
- mCommunicationService.stopServersSearch();
- }
-
- private void unregisterIntentsReceiver() {
try {
getBroadcastManager().unregisterReceiver(mIntentsReceiver);
} catch (IllegalArgumentException e) {
@@ -477,10 +406,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
public void onSaveInstanceState(Bundle aOutState) {
super.onSaveInstanceState(aOutState);
- saveProgressMessage(aOutState);
- }
-
- private void saveProgressMessage(Bundle aOutState) {
boolean aProgressMessageDisplayed = !TextUtils.isEmpty(getProgressMessageView().getText().toString());
aOutState.putBoolean(SavedStates.Keys.PROGRESS_MESSAGE, aProgressMessageDisplayed);
@@ -490,10 +415,6 @@ public class ComputersFragment extends ListFragment implements ServiceConnection
public void onDestroy() {
super.onDestroy();
- unbindService();
- }
-
- private void unbindService() {
getActivity().unbindService(this);
}
}