Fixed bug with last updated item in updates. Replaced start loading dialog with fragment.

This commit is contained in:
Bars107 2014-12-02 12:02:52 +02:00
parent f470ffe187
commit c1123041a2
6 changed files with 75 additions and 51 deletions

View file

@ -13,14 +13,13 @@
android:orientation="vertical"
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
android:layout_height="match_parent"/>
<LinearLayout
<LinearLayout android:id="@+id/credentials"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
android:padding="6dp" >
<LinearLayout

View file

@ -9,21 +9,19 @@ import java.util.Date;
import java.util.List;
import java.util.Random;
import android.support.v4.app.FragmentManager;
import net.osmand.access.AccessibleAlertBuilder;
import net.osmand.plus.OsmAndAppCustomization;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.Version;
import net.osmand.plus.base.BasicProgressAsyncTask;
import net.osmand.plus.dashboard.DashFavoritesFragment;
import net.osmand.plus.dashboard.DashMapFragment;
import net.osmand.plus.dashboard.DashPluginsFragment;
import net.osmand.plus.dashboard.DashSearchFragment;
import net.osmand.plus.dashboard.DashUpdatesFragment;
import net.osmand.plus.dashboard.*;
import net.osmand.plus.download.BaseDownloadActivity;
import net.osmand.plus.download.DownloadActivity;
import net.osmand.plus.download.IndexItem;
import net.osmand.plus.render.MapRenderRepositories;
import net.osmand.plus.sherpafy.SherpafyLoadingFragment;
import net.osmand.plus.sherpafy.TourViewActivity;
import android.app.Activity;
import android.app.AlertDialog;
@ -73,8 +71,7 @@ public class DashboardActivity extends BaseDownloadActivity {
private static final int HELP_ID = 0;
private static final int SETTINGS_ID = 1;
private static final int EXIT_ID = 2;
private ProgressDialog startProgressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
getMyApplication().applyTheme(this);
@ -100,9 +97,11 @@ public class DashboardActivity extends BaseDownloadActivity {
getSupportActionBar().setBackgroundDrawable(color);
getSupportActionBar().setIcon(android.R.color.transparent);
setupContributionVersion();
addFragments();
initApp(this, getMyApplication());
if (getMyApplication().isApplicationInitializing()) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content, new DashLoadingFragment()).commit();
}
}
@Override
@ -114,6 +113,7 @@ public class DashboardActivity extends BaseDownloadActivity {
}
protected void setupContributionVersion() {
findViewById(R.id.credentials).setVisibility(View.VISIBLE);
final TextView textVersionView = (TextView) findViewById(R.id.Copyright);
final Calendar inst = Calendar.getInstance();
inst.setTime(new Date());
@ -150,7 +150,7 @@ public class DashboardActivity extends BaseDownloadActivity {
about.setMovementMethod(LinkMovementMethod.getInstance());
}
private void addFragments() {
public void addFragments() {
android.support.v4.app.FragmentManager manager = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction = manager.beginTransaction();
//after rotation list of fragments in fragment transaction is not cleared
@ -175,6 +175,7 @@ public class DashboardActivity extends BaseDownloadActivity {
DashPluginsFragment pluginsFragment = new DashPluginsFragment();
fragmentTransaction.add(R.id.content, pluginsFragment, DashPluginsFragment.TAG).commit();
}
setupContributionVersion();
}
public static void showAboutDialog(final Activity activity, final OsmandApplication app) {
@ -231,9 +232,6 @@ public class DashboardActivity extends BaseDownloadActivity {
startActivityForResult(mapIndent, 0);
return;
}
startProgressDialog = new ProgressDialog(this);
getMyApplication().checkApplicationIsBeingInitialized(this, startProgressDialog);
boolean dialogShown = false;
boolean firstTime = false;
SharedPreferences pref = getPreferences(MODE_WORLD_WRITEABLE);
boolean appVersionChanged = false;
@ -248,7 +246,6 @@ public class DashboardActivity extends BaseDownloadActivity {
if (appCustomization.showFirstTimeRunAndTips(firstTime, appVersionChanged)) {
if (firstTime) {
applicationInstalledFirstTime();
dialogShown = true;
} else {
int i = pref.getInt(TIPS_SHOW, 0);
if (i < 7) {
@ -259,50 +256,23 @@ public class DashboardActivity extends BaseDownloadActivity {
TipsAndTricksActivity tipsActivity = new TipsAndTricksActivity(this);
Dialog dlg = tipsActivity.getDialogToShowTips(!appVersionChanged, false);
dlg.show();
dialogShown = true;
} else {
if(appVersionChanged) {
final Intent helpIntent = new Intent(activity, HelpActivity.class);
helpIntent.putExtra(HelpActivity.TITLE, Version.getAppVersion(getMyApplication()));
helpIntent.putExtra(HelpActivity.URL, "changes-1.9.html");
activity.startActivity(helpIntent);
dialogShown = true;
}
}
}
}
}
if(!dialogShown && appCustomization.checkBasemapDownloadedOnStart()) {
if (startProgressDialog.isShowing()) {
startProgressDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
checkVectorIndexesDownloaded();
updateDownloads();
// Do some action on close
// FIXME uncomment
// app.getResourceManager().getRenderer().clearCache();
// mapView.refreshMap(true);
}
});
} else {
checkVectorIndexesDownloaded();
updateDownloads();
}
}
if(appCustomization.checkExceptionsOnStart() && !dialogShown){
if(appCustomization.checkExceptionsOnStart()){
checkPreviousRunsForExceptions(firstTime);
}
}
@Override
protected Dialog onCreateDialog(int id) {
if(id == OsmandApplication.PROGRESS_DIALOG){
return startProgressDialog;
}
return super.onCreateDialog(id);
}
private void applicationInstalledFirstTime() {
boolean netOsmandWasInstalled = false;
try {

View file

@ -0,0 +1,54 @@
package net.osmand.plus.dashboard;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.actionbarsherlock.app.SherlockFragment;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.R;
import net.osmand.plus.activities.DashboardActivity;
/**
* Created by dummy on 02.12.14.
*/
public class DashLoadingFragment extends SherlockFragment {
OsmandApplication app;
private View view;
public DashLoadingFragment() {
}
public View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container,
Bundle savedInstanceState) {
app = (OsmandApplication) getSherlockActivity().getApplication();
view = inflater.inflate(R.layout.loading, container, false);
return view;
}
@Override
public void onViewCreated(final View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if(app.isApplicationInitializing()) {
app.checkApplicationIsBeingInitialized(getActivity(), (TextView) view.findViewById(R.id.ProgressMessage),
(ProgressBar) view.findViewById(R.id.ProgressBar), new Runnable() {
@Override
public void run() {
(view.findViewById(R.id.ProgressMessage)).setVisibility(View.GONE);
view.findViewById(R.id.ProgressBar).setVisibility(View.GONE);
DashboardActivity dashboardActivity =((DashboardActivity)getSherlockActivity());
dashboardActivity.getSupportFragmentManager().beginTransaction().detach(DashLoadingFragment.this);
dashboardActivity.updateDownloads();
dashboardActivity.addFragments();
}
});
} else {
DashboardActivity dashboardActivity =((DashboardActivity)getSherlockActivity());
dashboardActivity.getSupportFragmentManager().beginTransaction().detach(DashLoadingFragment.this);
dashboardActivity.updateDownloads();
dashboardActivity.addFragments();
}
}
}

View file

@ -75,13 +75,14 @@ public class DashUpdatesFragment extends DashBaseFragment {
downloadButtons.clear();
mainView.findViewById(R.id.main_progress).setVisibility(View.GONE);
((TextView) mainView.findViewById(R.id.update_count)).setText(String.valueOf(list.size()));
if (list.size() < 1) {
return;
}
LinearLayout updates = (LinearLayout) mainView.findViewById(R.id.updates_items);
updates.removeAllViews();
if (list.size() < 1) {
return;
}
for (int i = 0; i < list.size(); i++) {
final IndexItem item = list.get(i);
if (i > 2) {

View file

@ -20,7 +20,7 @@ public class SherpafyLoadingFragment extends SherlockFragment {
public View onCreateView(android.view.LayoutInflater inflater, android.view.ViewGroup container,
Bundle savedInstanceState) {
app = (OsmandApplication) getSherlockActivity().getApplication();
view = inflater.inflate(R.layout.sherpafy_loading, container, false);
view = inflater.inflate(R.layout.loading, container, false);
return view;
}