- Major refactoring. Still buggy.
diff --git a/FairphoneUpdater/src/com/fairphone/updater/fragments/MainFragment.java b/FairphoneUpdater/src/com/fairphone/updater/fragments/MainFragment.java
index 0da0260..183692e 100644
--- a/FairphoneUpdater/src/com/fairphone/updater/fragments/MainFragment.java
+++ b/FairphoneUpdater/src/com/fairphone/updater/fragments/MainFragment.java
@@ -1,5 +1,9 @@
package com.fairphone.updater.fragments;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -10,7 +14,9 @@
import android.widget.TextView;
import android.widget.Toast;
+import com.fairphone.updater.FairphoneUpdater2Activity;
import com.fairphone.updater.FairphoneUpdater2Activity.HeaderType;
+import com.fairphone.updater.FairphoneUpdater2Activity.UpdaterState;
import com.fairphone.updater.R;
import com.fairphone.updater.Version;
@@ -18,13 +24,12 @@
private TextView mCurrentVersionNameText;
private LinearLayout mVersionUpToDateGroup;
- // private Button mVersionUpToDateOlderOSVersionButton;
private LinearLayout mUpdateAvailableGroup;
- // private Button mUpdateAvailableOlderOSVersionButton;
private TextView mUpdateAvailableNameText;
private Button mUpdateAvailableInstallButton;
private Button mOtherOSOptionsButton;
private Version mDeviceVersion;
+ private BroadcastReceiver newVersionbroadcastReceiver;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -34,7 +39,7 @@
setupLayout(view);
- mDeviceVersion = mainActivity.getDeviceVersion();
+ mDeviceVersion = mainActivity.getDeviceVersion();
updateHeader();
updateCurrentVersionGroup();
toogleUpdateAvailableGroup();
@@ -44,9 +49,11 @@
}
private void updateHeader() {
- if(Version.IMAGE_TYPE_FAIRPHONE.equalsIgnoreCase(mDeviceVersion.getImageType())){
+ if (Version.IMAGE_TYPE_FAIRPHONE.equalsIgnoreCase(mDeviceVersion
+ .getImageType())) {
mainActivity.updateHeader(HeaderType.MAIN_FAIRPHONE, "");
- }else if (Version.IMAGE_TYPE_AOSP.equalsIgnoreCase(mDeviceVersion.getImageType())){
+ } else if (Version.IMAGE_TYPE_AOSP.equalsIgnoreCase(mDeviceVersion
+ .getImageType())) {
mainActivity.updateHeader(HeaderType.MAIN_ANDROID, "");
}
}
@@ -59,8 +66,6 @@
// Version up to date group
mVersionUpToDateGroup = (LinearLayout) view
.findViewById(R.id.version_up_to_date_group);
- // mVersionUpToDateOlderOSVersionButton = (Button) view
- // .findViewById(R.id.older_os_version_button);
// Update available group
mUpdateAvailableGroup = (LinearLayout) view
@@ -69,8 +74,6 @@
.findViewById(R.id.update_available_name_text);
mUpdateAvailableInstallButton = (Button) view
.findViewById(R.id.install_update_button);
- // mUpdateAvailableOlderOSVersionButton = (Button) view
- // .findViewById(R.id.other_os_version_button);
// Other OS Options group
mOtherOSOptionsButton = (Button) view
@@ -97,25 +100,9 @@
} else {
mUpdateAvailableGroup.setVisibility(View.GONE);
mVersionUpToDateGroup.setVisibility(View.VISIBLE);
-
- // updateOlderVersionsButton();
-
}
}
- // private void updateOlderVersionsButton() {
- // mVersionUpToDateOlderOSVersionButton
- // .setOnClickListener(new OnClickListener() {
- //
- // @Override
- // public void onClick(View v) {
- // Toast.makeText(mainActivity,
- // "Procced to older OS Versions",
- // Toast.LENGTH_LONG).show();
- // }
- // });
- // }
-
private void updateUpdateAvailableGroup() {
mUpdateAvailableNameText.setText(mainActivity.getLatestVersionName());
mUpdateAvailableInstallButton.setOnClickListener(new OnClickListener() {
@@ -126,29 +113,12 @@
Version latestVersion = mainActivity.getLatestVersion();
if (latestVersion != null) {
-
- fragment.setHeaderType(mainActivity
- .getHeaderTypeFromImageType(latestVersion
- .getImageType()), "Install update PASS",
- "Update version PASS");
- fragment.setVersion(latestVersion);
-
+ fragment.setupFragment(latestVersion,
+ VersionDetailFragment.DetailLayoutType.UPDATE);
+ mainActivity.changeFragment(fragment);
}
-
- mainActivity.changeFragment(fragment);
}
});
-
- // mUpdateAvailableOlderOSVersionButton
- // .setOnClickListener(new OnClickListener() {
- //
- // @Override
- // public void onClick(View v) {
- // Toast.makeText(mainActivity,
- // "Procced to older OS Versions",
- // Toast.LENGTH_LONG).show();
- // }
- // });
}
private void updateCurrentVersionGroup() {
@@ -160,4 +130,58 @@
}
});
}
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ setupBroadcastReceiver();
+
+ registerBroadCastReceiver();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+
+ unregisterBroadCastReceiver();
+ }
+
+ protected void setupBroadcastReceiver() {
+ newVersionbroadcastReceiver = new BroadcastReceiver() {
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+
+ if (FairphoneUpdater2Activity.FAIRPHONE_UPDATER_NEW_VERSION_RECEIVED
+ .equals(action)) {
+ mainActivity.updateLatestVersionFromConfig();
+ if (mainActivity.getCurrentUpdaterState() == UpdaterState.NORMAL) {
+ toogleUpdateAvailableGroup();
+ }
+ } else if (FairphoneUpdater2Activity.FAIRPHONE_UPDATER_CONFIG_DOWNLOAD_FAILED
+ .equals(action)) {
+ String link = intent
+ .getStringExtra(FairphoneUpdater2Activity.FAIRPHONE_UPDATER_CONFIG_DOWNLOAD_LINK);
+ Toast.makeText(
+ context.getApplicationContext(),
+ context.getResources().getString(
+ R.string.configFileDownloadLinkError)
+ + " " + link, Toast.LENGTH_LONG).show();
+ }
+ }
+ };
+ }
+
+ private void registerBroadCastReceiver() {
+ IntentFilter iFilter = new IntentFilter();
+ iFilter.addAction(FairphoneUpdater2Activity.FAIRPHONE_UPDATER_NEW_VERSION_RECEIVED);
+ iFilter.addAction(FairphoneUpdater2Activity.FAIRPHONE_UPDATER_CONFIG_DOWNLOAD_FAILED);
+ mainActivity.registerReceiver(newVersionbroadcastReceiver, iFilter);
+ }
+
+ private void unregisterBroadCastReceiver() {
+ mainActivity.unregisterReceiver(newVersionbroadcastReceiver);
+ }
+
}