diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 7625d0030..000000000 Binary files a/.DS_Store and /dev/null differ diff --git a/.gitignore b/.gitignore index 01775afe3..220aba3b4 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,27 @@ proguard/ # Keystore *.jks com_crashlytics_export_strings.xml -crashlytics-build.properties \ No newline at end of file +crashlytics-build.properties + +### OSX ### +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear on external disk +.Spotlight-V100 +.Trashes + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk \ No newline at end of file diff --git a/base/src/main/java/pct/droid/base/PopcornApplication.java b/base/src/main/java/pct/droid/base/PopcornApplication.java index 391c4ba4a..d628d0259 100644 --- a/base/src/main/java/pct/droid/base/PopcornApplication.java +++ b/base/src/main/java/pct/droid/base/PopcornApplication.java @@ -38,189 +38,200 @@ public class PopcornApplication extends VLCApplication { - private Boolean mBound = false; - private Messenger mService; - private String mShouldBoundUrl = "", mPackageName = "pct.droid"; - private static OkHttpClient sHttpClient; - private static Picasso sPicasso; - private static String sDefSystemLanguage; - - @Override - public void onCreate() { - super.onCreate(); - sDefSystemLanguage = LocaleUtils.getCurrent(); - - Bugsnag.register(this, Constants.BUGSNAG_KEY); - PopcornUpdater.getInstance(this).checkUpdates(false); - - - Constants.DEBUG_ENABLED = false; - int versionCode = 0; - try { - mPackageName = getPackageName(); - PackageInfo packageInfo = getPackageManager().getPackageInfo(mPackageName, 0); - int flags = packageInfo.applicationInfo.flags; - versionCode = packageInfo.versionCode; - Constants.DEBUG_ENABLED = (flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; - } catch (PackageManager.NameNotFoundException e) { - e.printStackTrace(); - } + private Boolean mBound = false; + private Messenger mService; + private String mShouldBoundUrl = "", mPackageName = "pct.droid"; + private static OkHttpClient sHttpClient; + private static Picasso sPicasso; + private static String sDefSystemLanguage; + private static PopcornApplication sInstance; + + public PopcornApplication() { + sInstance = this; + } + + public static PopcornApplication getInstance() { + return sInstance; + } + + @Override + public void onCreate() { + super.onCreate(); + sDefSystemLanguage = LocaleUtils.getCurrent(); + + Bugsnag.register(this, Constants.BUGSNAG_KEY); + PopcornUpdater.getInstance(this).checkUpdates(false); + + + Constants.DEBUG_ENABLED = false; + int versionCode = 0; + try { + mPackageName = getPackageName(); + PackageInfo packageInfo = getPackageManager().getPackageInfo(mPackageName, 0); + int flags = packageInfo.applicationInfo.flags; + versionCode = packageInfo.versionCode; + Constants.DEBUG_ENABLED = (flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; + } catch (PackageManager.NameNotFoundException e) { + e.printStackTrace(); + } //initialise logging if (BuildConfig.DEBUG) { Timber.plant(new Timber.DebugTree()); } - Intent nodeServiceIntent = new Intent(this, StreamerService.class); - bindService(nodeServiceIntent, mConnection, Context.BIND_AUTO_CREATE); - - File path = new File(PrefUtils.get(this, Prefs.STORAGE_LOCATION, StorageUtils.getIdealCacheDirectory(this).toString())); - File directory = new File(path, "/torrents/"); - if (PrefUtils.get(this, Prefs.REMOVE_CACHE, true)) { - FileUtils.recursiveDelete(directory); - FileUtils.recursiveDelete(new File(path + "/subs")); - } else { - File statusFile = new File(directory, "status.json"); - File streamerFile = new File(directory, "streamer.json"); - statusFile.delete(); - streamerFile.delete(); - } - - LogUtils.d("StorageLocations: " + StorageUtils.getAllStorageLocations()); - LogUtils.i("Chosen cache location: " + directory); - - - if (PrefUtils.get(this, Prefs.INSTALLED_VERSION, 0) < versionCode) { - PrefUtils.save(this, Prefs.INSTALLED_VERSION, versionCode); - FileUtils.recursiveDelete(new File(StorageUtils.getIdealCacheDirectory(this) + "/backend")); - } - } - - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - sDefSystemLanguage = LocaleUtils.getCurrent(); - } - - public static String getSystemLanguage() { - return sDefSystemLanguage; - } - - public static OkHttpClient getHttpClient() { - if (sHttpClient == null) { - sHttpClient = new OkHttpClient(); - - int cacheSize = 10 * 1024 * 1024; - try { - File cacheLocation = new File(PrefUtils.get(PopcornApplication.getAppContext(), Prefs.STORAGE_LOCATION, StorageUtils.getIdealCacheDirectory(PopcornApplication.getAppContext()).toString())); - cacheLocation.mkdirs(); - com.squareup.okhttp.Cache cache = new com.squareup.okhttp.Cache(cacheLocation, cacheSize); - sHttpClient.setCache(cache); - } catch (IOException e) { - e.printStackTrace(); - } - } - return sHttpClient; - } - - public static Picasso getPicasso() { - if (sPicasso == null) { - Picasso.Builder builder = new Picasso.Builder(getAppContext()); - OkHttpDownloader downloader = new OkHttpDownloader(getHttpClient()); - builder.downloader(downloader); - sPicasso = builder.build(); - } - return sPicasso; - } - - public Boolean isServiceBound() { - return mBound; - } - - public static String getStreamDir() { - File path = new File(PrefUtils.get(getAppContext(), Prefs.STORAGE_LOCATION, StorageUtils.getIdealCacheDirectory(getAppContext()).toString())); - File directory = new File(path, "/torrents/"); - return directory.toString(); - } - - public void startStreamer(String streamUrl) { - File torrentPath = new File(getStreamDir()); - torrentPath.mkdirs(); - - if (!mBound) { - LogUtils.d("Service not started yet"); - mShouldBoundUrl = streamUrl; - startService(); - return; - } - - LogUtils.i("Start streamer: " + streamUrl); - - Message msg = Message.obtain(null, StreamerService.MSG_RUN_SCRIPT, 0, 0); - - Bundle args = new Bundle(); - args.putString("directory", getStreamDir()); - args.putString("stream_url", streamUrl); - msg.setData(args); - - try { - mService.send(msg); - } catch (RemoteException e) { - e.printStackTrace(); - } - } - - public void stopStreamer() { - if (!mBound) return; - - ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); - List runningAppProcesses = am.getRunningAppProcesses(); - - for (int i = 0; i < runningAppProcesses.size(); i++) { - ActivityManager.RunningAppProcessInfo info = runningAppProcesses.get(i); - if (info.processName.equalsIgnoreCase(mPackageName + ":node")) { - android.os.Process.killProcess(info.pid); - } - } - - File torrentPath = new File(getStreamDir()); - if (PrefUtils.get(this, Prefs.REMOVE_CACHE, true)) { - FileUtils.recursiveDelete(torrentPath); - } else { - File statusFile = new File(torrentPath, "status.json"); - File streamerFile = new File(torrentPath, "streamer.json"); - statusFile.delete(); - streamerFile.delete(); - } - - startService(); - } - - public void startService() { - if (mBound) return; - Intent nodeServiceIntent = new Intent(this, StreamerService.class); - bindService(nodeServiceIntent, mConnection, Context.BIND_AUTO_CREATE); - } - - private ServiceConnection mConnection = new ServiceConnection() { - - @Override - public void onServiceConnected(ComponentName className, IBinder service) { - mService = new Messenger(service); - mBound = true; - - if (mShouldBoundUrl != null && !mShouldBoundUrl.isEmpty()) { - startStreamer(mShouldBoundUrl); - mShouldBoundUrl = ""; - } - } - - @Override - public void onServiceDisconnected(ComponentName componentName) { - mService = null; - mBound = false; - } - }; + Intent nodeServiceIntent = new Intent(this, StreamerService.class); + bindService(nodeServiceIntent, mConnection, Context.BIND_AUTO_CREATE); + + File path = new File(PrefUtils.get(this, Prefs.STORAGE_LOCATION, StorageUtils.getIdealCacheDirectory(this).toString())); + File directory = new File(path, "/torrents/"); + if (PrefUtils.get(this, Prefs.REMOVE_CACHE, true)) { + FileUtils.recursiveDelete(directory); + FileUtils.recursiveDelete(new File(path + "/subs")); + } else { + File statusFile = new File(directory, "status.json"); + File streamerFile = new File(directory, "streamer.json"); + statusFile.delete(); + streamerFile.delete(); + } + + LogUtils.d("StorageLocations: " + StorageUtils.getAllStorageLocations()); + LogUtils.i("Chosen cache location: " + directory); + + + if (PrefUtils.get(this, Prefs.INSTALLED_VERSION, 0) < versionCode) { + PrefUtils.save(this, Prefs.INSTALLED_VERSION, versionCode); + FileUtils.recursiveDelete(new File(StorageUtils.getIdealCacheDirectory(this) + "/backend")); + } + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + sDefSystemLanguage = LocaleUtils.getCurrent(); + } + + public static String getSystemLanguage() { + return sDefSystemLanguage; + } + + public static OkHttpClient getHttpClient() { + if (sHttpClient == null) { + sHttpClient = new OkHttpClient(); + + int cacheSize = 10 * 1024 * 1024; + try { + File cacheLocation = new File(PrefUtils.get(PopcornApplication.getAppContext(), Prefs.STORAGE_LOCATION, + StorageUtils.getIdealCacheDirectory(PopcornApplication.getAppContext()).toString())); + cacheLocation.mkdirs(); + com.squareup.okhttp.Cache cache = new com.squareup.okhttp.Cache(cacheLocation, cacheSize); + sHttpClient.setCache(cache); + } catch (IOException e) { + e.printStackTrace(); + } + } + return sHttpClient; + } + + public static Picasso getPicasso() { + if (sPicasso == null) { + Picasso.Builder builder = new Picasso.Builder(getAppContext()); + OkHttpDownloader downloader = new OkHttpDownloader(getHttpClient()); + builder.downloader(downloader); + sPicasso = builder.build(); + } + return sPicasso; + } + + public Boolean isServiceBound() { + return mBound; + } + + public static String getStreamDir() { + File path = new File( + PrefUtils.get(getAppContext(), Prefs.STORAGE_LOCATION, StorageUtils.getIdealCacheDirectory(getAppContext()).toString())); + File directory = new File(path, "/torrents/"); + return directory.toString(); + } + + public void startStreamer(String streamUrl) { + File torrentPath = new File(getStreamDir()); + torrentPath.mkdirs(); + + if (!mBound) { + LogUtils.d("Service not started yet"); + mShouldBoundUrl = streamUrl; + startService(); + return; + } + + LogUtils.i("Start streamer: " + streamUrl); + + Message msg = Message.obtain(null, StreamerService.MSG_RUN_SCRIPT, 0, 0); + + Bundle args = new Bundle(); + args.putString("directory", getStreamDir()); + args.putString("stream_url", streamUrl); + msg.setData(args); + + try { + mService.send(msg); + } catch (RemoteException e) { + e.printStackTrace(); + } + } + + public void stopStreamer() { + if (!mBound) return; + + ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); + List runningAppProcesses = am.getRunningAppProcesses(); + + for (int i = 0; i < runningAppProcesses.size(); i++) { + ActivityManager.RunningAppProcessInfo info = runningAppProcesses.get(i); + if (info.processName.equalsIgnoreCase(mPackageName + ":node")) { + android.os.Process.killProcess(info.pid); + } + } + + File torrentPath = new File(getStreamDir()); + if (PrefUtils.get(this, Prefs.REMOVE_CACHE, true)) { + FileUtils.recursiveDelete(torrentPath); + } else { + File statusFile = new File(torrentPath, "status.json"); + File streamerFile = new File(torrentPath, "streamer.json"); + statusFile.delete(); + streamerFile.delete(); + } + + startService(); + } + + public void startService() { + if (mBound) return; + Intent nodeServiceIntent = new Intent(this, StreamerService.class); + bindService(nodeServiceIntent, mConnection, Context.BIND_AUTO_CREATE); + } + + private ServiceConnection mConnection = new ServiceConnection() { + + @Override + public void onServiceConnected(ComponentName className, IBinder service) { + mService = new Messenger(service); + mBound = true; + + if (mShouldBoundUrl != null && !mShouldBoundUrl.isEmpty()) { + startStreamer(mShouldBoundUrl); + mShouldBoundUrl = ""; + } + } + + @Override + public void onServiceDisconnected(ComponentName componentName) { + mService = null; + mBound = false; + } + }; } diff --git a/base/src/main/java/pct/droid/base/preferences/Prefs.java b/base/src/main/java/pct/droid/base/preferences/Prefs.java index 7896054c0..33d6f225d 100644 --- a/base/src/main/java/pct/droid/base/preferences/Prefs.java +++ b/base/src/main/java/pct/droid/base/preferences/Prefs.java @@ -15,4 +15,5 @@ public class Prefs { public static final String WIFI_ONLY = "wifi_only"; public static final String LOCALE = "app_locale"; public static final String DRAWER_LEARNED = "drawer_learned"; + public static final String FIRST_RUN = "first_run"; } diff --git a/tv/.DS_Store b/tv/.DS_Store deleted file mode 100644 index 6dfda32e7..000000000 Binary files a/tv/.DS_Store and /dev/null differ diff --git a/tv/src/debug/AndroidManifest.xml b/tv/src/debug/AndroidManifest.xml new file mode 100644 index 000000000..bbd601125 --- /dev/null +++ b/tv/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/tv/src/main/AndroidManifest.xml b/tv/src/main/AndroidManifest.xml index 7852e64bf..f0ac98c32 100644 --- a/tv/src/main/AndroidManifest.xml +++ b/tv/src/main/AndroidManifest.xml @@ -26,9 +26,9 @@ android:allowBackup="false" android:name="pct.droid.base.PopcornApplication"> - @@ -36,10 +36,14 @@ + + + + diff --git a/tv/src/main/java/pct/droid/tv/activities/MainActivity.java b/tv/src/main/java/pct/droid/tv/activities/MainActivity.java deleted file mode 100644 index 217613d38..000000000 --- a/tv/src/main/java/pct/droid/tv/activities/MainActivity.java +++ /dev/null @@ -1,22 +0,0 @@ -package pct.droid.tv.activities; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; - -import pct.droid.tv.R; - -public class MainActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_main); - } - - @Override - public boolean onSearchRequested() { - startActivity(new Intent(this, PTVSearchActivity.class)); - return true; - } -} diff --git a/tv/src/main/java/pct/droid/tv/activities/PTVLaunchActivity.java b/tv/src/main/java/pct/droid/tv/activities/PTVLaunchActivity.java new file mode 100644 index 000000000..c76c05f3d --- /dev/null +++ b/tv/src/main/java/pct/droid/tv/activities/PTVLaunchActivity.java @@ -0,0 +1,23 @@ +package pct.droid.tv.activities; + +import android.app.Activity; +import android.os.Bundle; + +import pct.droid.base.preferences.Prefs; +import pct.droid.base.utils.PrefUtils; + +public class PTVLaunchActivity extends Activity { + + + @Override protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Boolean firstRun = PrefUtils.get(this, Prefs.FIRST_RUN, true); + if (firstRun) { + //set first run flag to false + PrefUtils.save(this, Prefs.FIRST_RUN, false); + //run the welcome wizard + PTVWelcomeActivity.startActivity(this); + } else + PTVMainActivity.startActivity(this); + } +} diff --git a/tv/src/main/java/pct/droid/tv/activities/PTVMainActivity.java b/tv/src/main/java/pct/droid/tv/activities/PTVMainActivity.java new file mode 100644 index 000000000..fc99eccd0 --- /dev/null +++ b/tv/src/main/java/pct/droid/tv/activities/PTVMainActivity.java @@ -0,0 +1,28 @@ +package pct.droid.tv.activities; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; + +import pct.droid.tv.R; + +public class PTVMainActivity extends Activity { + + public static Intent startActivity(Activity activity) { + Intent intent = new Intent(activity, PTVMainActivity.class); + activity.startActivity(intent); + return intent; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + } + + @Override + public boolean onSearchRequested() { + startActivity(new Intent(this, PTVSearchActivity.class)); + return true; + } +} diff --git a/tv/src/main/java/pct/droid/tv/activities/PlayerActivity.java b/tv/src/main/java/pct/droid/tv/activities/PTVPlayerActivity.java similarity index 98% rename from tv/src/main/java/pct/droid/tv/activities/PlayerActivity.java rename to tv/src/main/java/pct/droid/tv/activities/PTVPlayerActivity.java index 8a9f30ae1..d58c925bb 100644 --- a/tv/src/main/java/pct/droid/tv/activities/PlayerActivity.java +++ b/tv/src/main/java/pct/droid/tv/activities/PTVPlayerActivity.java @@ -50,7 +50,7 @@ public void onResponse(Response response) throws IOException { }); */ -public class PlayerActivity extends Activity { +public class PTVPlayerActivity extends Activity { private static final String TAG = "PlayerActivity"; @@ -261,7 +261,7 @@ public void run() { mHandler.post(new Runnable() { @Override public void run() { - Intent intent = new Intent(PlayerActivity.this, PTVMovieDetailActivity.class); + Intent intent = new Intent(PTVPlayerActivity.this, PTVMovieDetailActivity.class); intent.putExtra(getResources().getString(R.string.movie), mSelectedMovie); startActivity(intent); } diff --git a/tv/src/main/java/pct/droid/tv/activities/PTVWelcomeActivity.java b/tv/src/main/java/pct/droid/tv/activities/PTVWelcomeActivity.java new file mode 100644 index 000000000..3aecac25a --- /dev/null +++ b/tv/src/main/java/pct/droid/tv/activities/PTVWelcomeActivity.java @@ -0,0 +1,23 @@ +package pct.droid.tv.activities; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; + +import pct.droid.tv.R; + +public class PTVWelcomeActivity extends Activity { + + public static Intent startActivity(Activity activity) { + Intent intent = new Intent(activity, PTVWelcomeActivity.class); + activity.startActivity(intent); + return intent; + } + + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_welcome); + } +} diff --git a/tv/src/main/java/pct/droid/tv/fragments/PTVMovieDetailsFragment.java b/tv/src/main/java/pct/droid/tv/fragments/PTVMovieDetailsFragment.java index 39375f1b3..2553b483a 100644 --- a/tv/src/main/java/pct/droid/tv/fragments/PTVMovieDetailsFragment.java +++ b/tv/src/main/java/pct/droid/tv/fragments/PTVMovieDetailsFragment.java @@ -1,6 +1,7 @@ package pct.droid.tv.fragments; import android.app.Activity; +import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.Bundle; @@ -10,22 +11,27 @@ import android.support.v17.leanback.widget.ClassPresenterSelector; import android.support.v17.leanback.widget.DetailsOverviewRow; import android.support.v17.leanback.widget.DetailsOverviewRowPresenter; +import android.support.v17.leanback.widget.OnActionClickedListener; import android.support.v17.leanback.widget.OnItemViewClickedListener; import android.support.v17.leanback.widget.Presenter; import android.support.v17.leanback.widget.Row; import android.support.v17.leanback.widget.RowPresenter; +import android.widget.Toast; import com.squareup.picasso.Picasso; import com.squareup.picasso.Target; import java.util.ArrayList; +import pct.droid.base.preferences.Prefs; import pct.droid.base.providers.media.EZTVProvider; import pct.droid.base.providers.media.MediaProvider; import pct.droid.base.providers.media.YTSProvider; import pct.droid.base.providers.media.types.Media; import pct.droid.base.providers.media.types.Movie; import pct.droid.base.providers.media.types.Show; +import pct.droid.base.utils.NetworkUtils; +import pct.droid.base.utils.PrefUtils; import pct.droid.base.utils.ThreadUtils; import pct.droid.tv.R; import pct.droid.tv.activities.PTVMovieDetailActivity; @@ -123,19 +129,39 @@ private void setupDetailsOverviewRowPresenter() { // Hook up transition element. detailsPresenter.setSharedElementEnterTransition(getActivity(), PTVMovieDetailActivity.SHARED_ELEMENT_NAME); - // - // detailsPresenter.setOnActionClickedListener(new OnActionClickedListener() { - // @Override - // public void onActionClicked(Action action) { - // if (action.getId() == ACTION_WATCH_TRAILER) { - // Intent intent = new Intent(getActivity(), PlaybackOverlayActivity.class); - // intent.putExtra(MovieDetailsActivity.MOVIE, mSelectedMovie); - // startActivity(intent); - // } else { - // Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show(); - // } - // } - // }); + + detailsPresenter.setOnActionClickedListener(new OnActionClickedListener() { + @Override + public void onActionClicked(Action action) { + + +// final String streamUrl = mItem.torrents.get(mQuality).url; +// if (PrefUtils.get(MovieDetailActivity.this, Prefs.WIFI_ONLY, true) && !NetworkUtils +// .isWifiConnected(MovieDetailActivity.this) && +// NetworkUtils +// .isNetworkConnected(MovieDetailActivity.this)) { +// MessageDialogFragment.show(getFragmentManager(), R.string.wifi_only, R.string.wifi_only_message); +// } else { +// Intent streamIntent = new Intent(MovieDetailActivity.this, StreamLoadingActivity.class); +// streamIntent.putExtra(StreamLoadingActivity.STREAM_URL, streamUrl); +// streamIntent.putExtra(StreamLoadingActivity.QUALITY, mQuality); +// streamIntent.putExtra(StreamLoadingActivity.DATA, mItem); +// if (mSubLanguage != null) +// streamIntent.putExtra(StreamLoadingActivity.SUBTITLES, mSubLanguage); +// startActivity(streamIntent); +// } + + + +// if (action.getId() == ACTION_WATCH_TRAILER) { +// Intent intent = new Intent(getActivity(), PlaybackOverlayActivity.class); +// intent.putExtra(MovieDetailsActivity.MOVIE, mSelectedMovie); +// startActivity(intent); +// } else { +// Toast.makeText(getActivity(), action.toString(), Toast.LENGTH_SHORT).show(); +// } + } + }); mPresenterSelector.addClassPresenter(DetailsOverviewRow.class, detailsPresenter); } diff --git a/tv/src/main/java/pct/droid/tv/fragments/PTVWelcomeFragment.java b/tv/src/main/java/pct/droid/tv/fragments/PTVWelcomeFragment.java new file mode 100644 index 000000000..b3dc3e874 --- /dev/null +++ b/tv/src/main/java/pct/droid/tv/fragments/PTVWelcomeFragment.java @@ -0,0 +1,21 @@ +package pct.droid.tv.fragments; + +import android.app.Fragment; +import android.os.Bundle; +import android.support.annotation.Nullable; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import pct.droid.tv.R; + +public class PTVWelcomeFragment extends Fragment { + + @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + return inflater.inflate(R.layout.fragment_welcome, container, false); + } + + @Override public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + } +} diff --git a/tv/src/main/java/pct/droid/tv/presenters/OverviewCardPresenter.java b/tv/src/main/java/pct/droid/tv/presenters/OverviewCardPresenter.java index 03dc59d7a..38c098179 100644 --- a/tv/src/main/java/pct/droid/tv/presenters/OverviewCardPresenter.java +++ b/tv/src/main/java/pct/droid/tv/presenters/OverviewCardPresenter.java @@ -23,8 +23,8 @@ import android.text.TextUtils; import android.util.AttributeSet; import android.view.ViewGroup; +import android.widget.ImageView; -import pct.droid.tv.R; import com.squareup.picasso.Picasso; import com.squareup.picasso.Target; @@ -32,6 +32,7 @@ import java.util.List; import pct.droid.base.providers.media.types.Media; +import pct.droid.tv.R; /* * A CardPresenter is used to generate Views and bind Objects to them on demand. @@ -82,8 +83,8 @@ public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) { public void onBindLoadingViewHolder(Presenter.ViewHolder viewHolder, OverviewCardItem overview) { final CustomImageCardView cardView = (CustomImageCardView) viewHolder.view; - cardView.setMainImage(mContext.getDrawable(R.drawable.popcorn_icon_desat)); - // cardView.setMainImageScaleType(ImageView.ScaleType.CENTER); + cardView.setMainImageScaleType(ImageView.ScaleType.CENTER_INSIDE); + cardView.setMainImage(mContext.getDrawable(R.drawable.placeholder_inset)); cardView.setTitleText(mContext.getString(R.string.loading)); cardView.setMainImageDimensions(mCardWidth, mCardHeight); } diff --git a/tv/src/main/res/.DS_Store b/tv/src/main/res/.DS_Store index 568533476..d668e9d2d 100644 Binary files a/tv/src/main/res/.DS_Store and b/tv/src/main/res/.DS_Store differ diff --git a/tv/src/main/res/drawable-hdpi/ic_launcher.png b/tv/src/main/res/drawable-hdpi/ic_launcher.png deleted file mode 100644 index 96a442e5b..000000000 Binary files a/tv/src/main/res/drawable-hdpi/ic_launcher.png and /dev/null differ diff --git a/tv/src/main/res/drawable-mdpi/ic_launcher.png b/tv/src/main/res/drawable-mdpi/ic_launcher.png deleted file mode 100644 index 359047dfa..000000000 Binary files a/tv/src/main/res/drawable-mdpi/ic_launcher.png and /dev/null differ diff --git a/tv/src/main/res/drawable-xhdpi/ic_launcher.png b/tv/src/main/res/drawable-xhdpi/ic_launcher.png deleted file mode 100644 index 71c6d760f..000000000 Binary files a/tv/src/main/res/drawable-xhdpi/ic_launcher.png and /dev/null differ diff --git a/tv/src/main/res/drawable-xxhdpi/ic_launcher.png b/tv/src/main/res/drawable-xxhdpi/ic_launcher.png deleted file mode 100644 index 4df189464..000000000 Binary files a/tv/src/main/res/drawable-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/tv/src/main/res/drawable-xxhdpi/popcorn_logo_placeholder.9.png b/tv/src/main/res/drawable-xxhdpi/popcorn_logo_placeholder.9.png new file mode 100644 index 000000000..8b5c0c580 Binary files /dev/null and b/tv/src/main/res/drawable-xxhdpi/popcorn_logo_placeholder.9.png differ diff --git a/tv/src/main/res/drawable/placeholder_inset.xml b/tv/src/main/res/drawable/placeholder_inset.xml new file mode 100644 index 000000000..df315ed24 --- /dev/null +++ b/tv/src/main/res/drawable/placeholder_inset.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/tv/src/main/res/drawable/welcome_circle.xml b/tv/src/main/res/drawable/welcome_circle.xml new file mode 100644 index 000000000..2172660fa --- /dev/null +++ b/tv/src/main/res/drawable/welcome_circle.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/tv/src/main/res/layout/activity_welcome.xml b/tv/src/main/res/layout/activity_welcome.xml new file mode 100644 index 000000000..062c33100 --- /dev/null +++ b/tv/src/main/res/layout/activity_welcome.xml @@ -0,0 +1,12 @@ + + diff --git a/tv/src/main/res/layout/fragment_welcome.xml b/tv/src/main/res/layout/fragment_welcome.xml new file mode 100644 index 000000000..3340cbd61 --- /dev/null +++ b/tv/src/main/res/layout/fragment_welcome.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/tv/src/main/res/values/themes.xml b/tv/src/main/res/values/themes.xml index c8692e884..d17835bcc 100644 --- a/tv/src/main/res/values/themes.xml +++ b/tv/src/main/res/values/themes.xml @@ -1,7 +1,19 @@ - + + \ No newline at end of file