-/* ownCloud Android client application
- * Copyright (C) 2012-2013 ownCloud Inc.
+/**
+ * ownCloud Android client application
+ *
+ * @author David A. Velasco
+ * Copyright (C) 2015 ownCloud Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
-import android.content.SharedPreferences;
+import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
-import android.preference.PreferenceManager;
import android.support.v4.view.ViewPager;
import android.view.View;
import com.owncloud.android.lib.common.operations.RemoteOperation;
import com.owncloud.android.lib.common.operations.RemoteOperationResult;
import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.operations.CreateShareOperation;
import com.owncloud.android.operations.RemoveFileOperation;
import com.owncloud.android.operations.UnshareLinkOperation;
import com.owncloud.android.ui.activity.FileActivity;
import com.owncloud.android.ui.activity.FileDisplayActivity;
-import com.owncloud.android.ui.activity.PinCodeActivity;
import com.owncloud.android.ui.fragment.FileFragment;
import com.owncloud.android.utils.DisplayUtils;
-import com.owncloud.android.utils.Log_OC;
/**
* Holds a swiping galley where image files contained in an ownCloud directory are shown
- *
- * @author David A. Velasco
*/
public class PreviewImageActivity extends FileActivity implements
FileFragment.ContainerActivity,
private static final int INITIAL_HIDE_DELAY = 0; // immediate hide
private ExtendedViewPager mViewPager;
- private PreviewImagePagerAdapter mPreviewImagePagerAdapter;
+ private PreviewImagePagerAdapter mPreviewImagePagerAdapter;
+ private int mSavedPosition = 0;
+ private boolean mHasSavedPosition = false;
private boolean mRequestWaitingForBinder;
private DownloadFinishReceiver mDownloadFinishReceiver;
-
- //private boolean mFullScreen;
private View mFullScreenAnchorView;
-
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
actionBar.setIcon(DisplayUtils.getSeasonalIconId());
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.hide();
+
+ // Make sure we're running on Honeycomb or higher to use FullScreen and
+ // Immersive Mode
+ if (isHoneycombOrHigher()) {
- // PIN CODE request
- if (getIntent().getExtras() != null && savedInstanceState == null && fromNotification()) {
- requestPinCode();
- }
-
- //mFullScreen = true;
- mFullScreenAnchorView = getWindow().getDecorView();
- // to keep our UI controls visibility in line with system bars visibility
- mFullScreenAnchorView.setOnSystemUiVisibilityChangeListener(
- new View.OnSystemUiVisibilityChangeListener() {
+ mFullScreenAnchorView = getWindow().getDecorView();
+ // to keep our UI controls visibility in line with system bars
+ // visibility
+ mFullScreenAnchorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
@SuppressLint("InlinedApi")
- @Override
- public void onSystemUiVisibilityChange(int flags) {
- boolean visible = (flags &
- View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
+ @Override
+ public void onSystemUiVisibilityChange(int flags) {
+ boolean visible = (flags & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
ActionBar actionBar = getSupportActionBar();
if (visible) {
actionBar.show();
actionBar.hide();
}
}
- }
- );
+ });
+
+ }
if (savedInstanceState != null) {
mRequestWaitingForBinder = savedInstanceState.getBoolean(KEY_WAITING_FOR_BINDER);
}
mPreviewImagePagerAdapter = new PreviewImagePagerAdapter(getSupportFragmentManager(), parentFolder, getAccount(), getStorageManager());
mViewPager = (ExtendedViewPager) findViewById(R.id.fragmentPager);
- int position = mPreviewImagePagerAdapter.getFilePosition(getFile());
+ int position = mHasSavedPosition ? mSavedPosition : mPreviewImagePagerAdapter.getFilePosition(getFile());
position = (position >= 0) ? position : 0;
mViewPager.setAdapter(mPreviewImagePagerAdapter);
mViewPager.setOnPageChangeListener(this);
Handler mHideSystemUiHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
- hideSystemUI(mFullScreenAnchorView);
+ if (isHoneycombOrHigher()) {
+ hideSystemUI(mFullScreenAnchorView);
+ }
getSupportActionBar().hide();
}
};
super.onWindowFocusChanged(hasFocus);
// When the window loses focus (e.g. the action overflow is shown),
- // cancel any pending hide action. When the window gains focus,
- // hide the system UI.
- if (hasFocus) {
- delayedHide(INITIAL_HIDE_DELAY);
- } else {
+ // cancel any pending hide action.
+ if (!hasFocus) {
mHideSystemUiHandler.removeMessages(0);
}
}
@Override
protected void onResume() {
super.onResume();
- //Log.e(TAG, "ACTIVITY, ONRESUME");
+
mDownloadFinishReceiver = new DownloadFinishReceiver();
IntentFilter filter = new IntentFilter(FileDownloader.getDownloadFinishMessage());
@Override
protected void onPostResume() {
- //Log.e(TAG, "ACTIVITY, ONPOSTRESUME");
super.onPostResume();
}
@Override
public void onPause() {
- unregisterReceiver(mDownloadFinishReceiver);
- mDownloadFinishReceiver = null;
+ if (mDownloadFinishReceiver != null){
+ unregisterReceiver(mDownloadFinishReceiver);
+ mDownloadFinishReceiver = null;
+ }
+
super.onPause();
}
*/
@Override
public void onPageSelected(int position) {
+ mSavedPosition = position;
+ mHasSavedPosition = true;
if (mDownloaderBinder == null) {
mRequestWaitingForBinder = true;
/**
- * Class waiting for broadcast events from the {@link FielDownloader} service.
+ * Class waiting for broadcast events from the {@link FileDownloader} service.
*
* Updates the UI when a download is started or finished, provided that it is relevant for the
* folder displayed in the gallery.
@SuppressLint("InlinedApi")
public void toggleFullScreen() {
- //ActionBar actionBar = getSupportActionBar();
-
- boolean visible = (
- mFullScreenAnchorView.getSystemUiVisibility()
- & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
- ) == 0;
+
+ if (isHoneycombOrHigher()) {
- if (visible) {
- hideSystemUI(mFullScreenAnchorView);
- //actionBar.hide(); // propagated through OnSystemUiVisibilityChangeListener()
- } else {
- showSystemUI(mFullScreenAnchorView);
- //actionBar.show(); // propagated through OnSystemUiVisibilityChangeListener()
- }
- /*
- if (mFullScreen) {
- actionBar.show();
-
+ boolean visible = (mFullScreenAnchorView.getSystemUiVisibility()
+ & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0;
+
+ if (visible) {
+ hideSystemUI(mFullScreenAnchorView);
+ // actionBar.hide(); // propagated through
+ // OnSystemUiVisibilityChangeListener()
+ } else {
+ showSystemUI(mFullScreenAnchorView);
+ // actionBar.show(); // propagated through
+ // OnSystemUiVisibilityChangeListener()
+ }
+
} else {
- actionBar.hide();
-
+
+ ActionBar actionBar = getSupportActionBar();
+ if (!actionBar.isShowing()) {
+ actionBar.show();
+
+ } else {
+ actionBar.hide();
+
+ }
+
}
- mFullScreen = !mFullScreen;
- */
}
@Override
}
}
}
-
-
- /**
- * Launch an intent to request the PIN code to the user before letting him use the app
- */
- private void requestPinCode() {
- boolean pinStart = false;
- SharedPreferences appPrefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
- pinStart = appPrefs.getBoolean("set_pincode", false);
- if (pinStart) {
- Intent i = new Intent(getApplicationContext(), PinCodeActivity.class);
- i.putExtra(PinCodeActivity.EXTRA_ACTIVITY, "PreviewImageActivity");
- startActivity(i);
- }
- }
@Override
public void onBrowsedDownTo(OCFile folder) {
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // draw full window; Android >= 4.1
);
}
-
-
+ /**
+ * Checks if OS version is Honeycomb one or higher
+ *
+ * @return boolean
+ */
+ private boolean isHoneycombOrHigher() {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+ return true;
+ }
+ return false;
+ }
}