Skip to content

Commit c597544

Browse files
author
Christian Schabesberger
committed
new app icon & made player fullscreen work better
1 parent d3cc518 commit c597544

15 files changed

Lines changed: 320 additions & 22 deletions

File tree

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/org/schabi/newpipe/PlayVideoActivity.java

Lines changed: 109 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,16 @@
22

33
import android.content.Intent;
44
import android.content.pm.ActivityInfo;
5+
import android.content.res.Configuration;
6+
import android.content.res.Resources;
57
import android.media.MediaPlayer;
68
import android.net.Uri;
9+
import android.os.Build;
710
import android.os.Bundle;
811
import android.os.Handler;
912
import android.support.v7.app.ActionBar;
1013
import android.support.v7.app.AppCompatActivity;
14+
import android.util.DisplayMetrics;
1115
import android.util.Log;
1216
import android.view.Display;
1317
import android.view.Menu;
@@ -17,8 +21,11 @@
1721
import android.view.View;
1822
import android.view.WindowManager;
1923
import android.widget.Button;
24+
import android.widget.FrameLayout;
25+
import android.widget.LinearLayout;
2026
import android.widget.MediaController;
2127
import android.widget.ProgressBar;
28+
import android.widget.SeekBar;
2229
import android.widget.VideoView;
2330

2431
/**
@@ -50,6 +57,7 @@ public class PlayVideoActivity extends AppCompatActivity {
5057
private static final String POSITION = "position";
5158

5259
private static final long HIDING_DELAY = 3000;
60+
private static final long TAB_HIDING_DELAY = 100;
5361

5462
private String videoUrl = "";
5563

@@ -61,13 +69,18 @@ public class PlayVideoActivity extends AppCompatActivity {
6169
private View decorView;
6270
private boolean uiIsHidden = false;
6371
private static long lastUiShowTime = 0;
72+
private boolean isLandscape = true;
73+
private boolean hasSoftKeys = false;
6474

6575
@Override
6676
protected void onCreate(Bundle savedInstanceState) {
6777
super.onCreate(savedInstanceState);
6878

6979
setContentView(R.layout.activity_play_video);
7080

81+
isLandscape = checkIfLandscape();
82+
hasSoftKeys = checkIfhasSoftKeys();
83+
7184
actionBar = getSupportActionBar();
7285
actionBar.setDisplayHomeAsUpEnabled(true);
7386
Intent intent = getIntent();
@@ -91,6 +104,7 @@ public void onPrepared(MediaPlayer mp) {
91104
videoView.seekTo(position);
92105
if (position == 0) {
93106
videoView.start();
107+
showUi();
94108
} else {
95109
videoView.pause();
96110
}
@@ -113,16 +127,21 @@ public void onClick(View v) {
113127
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
114128
@Override
115129
public void onSystemUiVisibilityChange(int visibility) {
116-
if((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
117-
uiIsHidden = false;
130+
if (visibility == View.VISIBLE && uiIsHidden) {
118131
showUi();
119-
} else {
120-
uiIsHidden = true;
121-
hideUi();
122132
}
123133
}
124134
});
125-
showUi();
135+
136+
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
137+
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
138+
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
139+
}
140+
141+
@Override
142+
protected void onPostCreate(Bundle savedInstanceState) {
143+
super.onPostCreate(savedInstanceState);
144+
126145
}
127146

128147
@Override
@@ -166,8 +185,16 @@ public boolean onOptionsItemSelected(MenuItem item) {
166185
}
167186

168187
@Override
169-
protected void onPostCreate(Bundle savedInstanceState) {
170-
super.onPostCreate(savedInstanceState);
188+
public void onConfigurationChanged(Configuration config) {
189+
super.onConfigurationChanged(config);
190+
191+
if (config.orientation == Configuration.ORIENTATION_LANDSCAPE) {
192+
isLandscape = true;
193+
adjustMediaControllMetrics();
194+
} else if (config.orientation == Configuration.ORIENTATION_PORTRAIT){
195+
isLandscape = false;
196+
adjustMediaControllMetrics();
197+
}
171198
}
172199

173200
@Override
@@ -187,15 +214,15 @@ public void onRestoreInstanceState(Bundle savedInstanceState) {
187214
private void showUi() {
188215
try {
189216
uiIsHidden = false;
190-
mediaController.show();
217+
mediaController.show(100000);
191218
actionBar.show();
192-
//decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
193-
//| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
219+
adjustMediaControllMetrics();
220+
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
194221
Handler handler = new Handler();
195222
handler.postDelayed(new Runnable() {
196223
@Override
197224
public void run() {
198-
if ((System.currentTimeMillis() - lastUiShowTime) > HIDING_DELAY) {
225+
if ((System.currentTimeMillis() - lastUiShowTime) >= HIDING_DELAY) {
199226
hideUi();
200227
}
201228
}
@@ -210,8 +237,75 @@ private void hideUi() {
210237
uiIsHidden = true;
211238
actionBar.hide();
212239
mediaController.hide();
213-
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
214-
//decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN);
215-
//| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
240+
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
241+
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
242+
| View.SYSTEM_UI_FLAG_FULLSCREEN
243+
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
244+
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
245+
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
246+
WindowManager.LayoutParams.FLAG_FULLSCREEN);
247+
}
248+
249+
private void adjustMediaControllMetrics() {
250+
MediaController.LayoutParams mediaControllerLayout
251+
= new MediaController.LayoutParams(MediaController.LayoutParams.MATCH_PARENT,
252+
MediaController.LayoutParams.WRAP_CONTENT);
253+
254+
if(!hasSoftKeys) {
255+
mediaControllerLayout.setMargins(20, 0, 20, 20);
256+
} else {
257+
int width = getNavigationBarWidth();
258+
int height = getNavigationBarHeight();
259+
mediaControllerLayout.setMargins(width + 20, 0, width + 20, height + 20);
260+
}
261+
mediaController.setLayoutParams(mediaControllerLayout);
262+
}
263+
264+
private boolean checkIfhasSoftKeys(){
265+
if(Build.VERSION.SDK_INT >= 17) {
266+
return getNavigationBarHeight() != 0 || getNavigationBarWidth() != 0;
267+
} else {
268+
return true;
269+
}
270+
}
271+
272+
private int getNavigationBarHeight() {
273+
if(Build.VERSION.SDK_INT >= 17) {
274+
Display d = getWindowManager().getDefaultDisplay();
275+
276+
DisplayMetrics realDisplayMetrics = new DisplayMetrics();
277+
d.getRealMetrics(realDisplayMetrics);
278+
DisplayMetrics displayMetrics = new DisplayMetrics();
279+
d.getMetrics(displayMetrics);
280+
281+
int realHeight = realDisplayMetrics.heightPixels;
282+
int displayHeight = displayMetrics.heightPixels;
283+
return (realHeight - displayHeight);
284+
} else {
285+
return 50;
286+
}
287+
}
288+
289+
private int getNavigationBarWidth() {
290+
if(Build.VERSION.SDK_INT >= 17) {
291+
Display d = getWindowManager().getDefaultDisplay();
292+
293+
DisplayMetrics realDisplayMetrics = new DisplayMetrics();
294+
d.getRealMetrics(realDisplayMetrics);
295+
DisplayMetrics displayMetrics = new DisplayMetrics();
296+
d.getMetrics(displayMetrics);
297+
298+
int realWidth = realDisplayMetrics.widthPixels;
299+
int displayWidth = displayMetrics.widthPixels;
300+
return (realWidth - displayWidth);
301+
} else {
302+
return 50;
303+
}
304+
}
305+
306+
public boolean checkIfLandscape() {
307+
DisplayMetrics displayMetrics = new DisplayMetrics();
308+
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
309+
return displayMetrics.heightPixels < displayMetrics.widthPixels;
216310
}
217311
}

app/src/main/java/org/schabi/newpipe/VideoItemDetailActivity.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
package org.schabi.newpipe;
22

33
import android.content.ContentProviderOperation;
4+
import android.content.res.Configuration;
5+
import android.os.Build;
46
import android.preference.PreferenceManager;
57
import android.support.v7.app.ActionBar;
68
import android.support.v7.app.AppCompatActivity;
79
import android.content.Intent;
810
import android.os.Bundle;
911
import android.support.v4.app.NavUtils;
12+
import android.util.DisplayMetrics;
1013
import android.util.Log;
1114
import android.view.Menu;
1215
import android.view.MenuInflater;
1316
import android.view.MenuItem;
17+
import android.view.WindowManager;
1418

1519
import org.schabi.newpipe.youtube.YoutubeExtractor;
1620

@@ -39,12 +43,12 @@ public class VideoItemDetailActivity extends AppCompatActivity {
3943

4044
private String videoUrl;
4145
private int currentStreamingService = -1;
46+
private boolean isLandscape;
4247

4348
protected void onCreate(Bundle savedInstanceState) {
4449
super.onCreate(savedInstanceState);
4550
setContentView(R.layout.activity_videoitem_detail);
4651

47-
4852
// Show the Up button in the action bar.
4953
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
5054
ActionBarHandler.getHandler().setupNavMenu(this);

app/src/main/java/org/schabi/newpipe/VideoItemDetailFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import android.view.View;
1616
import android.view.ViewGroup;
1717
import android.widget.ImageView;
18+
import android.widget.ListView;
1819
import android.widget.ProgressBar;
1920
import android.widget.TextView;
2021

app/src/main/java/org/schabi/newpipe/VideoItemListActivity.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,19 @@
22

33
import android.content.Context;
44
import android.content.Intent;
5+
import android.content.res.Configuration;
6+
import android.os.Build;
57
import android.os.Bundle;
68
import android.os.Environment;
79
import android.preference.PreferenceManager;
810
import android.support.v7.app.AppCompatActivity;
11+
import android.util.DisplayMetrics;
912
import android.util.Log;
1013
import android.view.Menu;
1114
import android.view.MenuInflater;
1215
import android.view.MenuItem;
1316
import android.view.View;
17+
import android.view.WindowManager;
1418
import android.view.inputmethod.InputMethodManager;
1519
import android.support.v7.widget.SearchView;
1620
import android.widget.ImageView;

app/src/main/java/org/schabi/newpipe/VideoItemListFragment.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import android.widget.Toast;
1414

1515
import java.net.URL;
16+
import java.util.List;
1617
import java.util.Vector;
1718

1819

app/src/main/res/layout/activity_play_video.xml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,20 @@
99
<VideoView android:id="@+id/video_view"
1010
android:layout_width="match_parent"
1111
android:layout_height="match_parent"
12-
android:layout_gravity="center"/>
12+
android:layout_gravity="center"
13+
android:focusable="false"/>
1314

1415
<Button android:id="@+id/content_button"
1516
android:layout_width="match_parent"
1617
android:layout_height="match_parent"
17-
android:background="@null" />
18+
android:background="@null"
19+
android:focusable="false"/>
1820

1921
<ProgressBar android:id="@+id/play_video_progress_bar"
2022
android:layout_width="wrap_content"
2123
android:layout_height="wrap_content"
2224
android:indeterminate="true"
23-
android:layout_gravity="center"/>
25+
android:layout_gravity="center"
26+
android:focusable="false"/>
2427

2528
</FrameLayout>

app/src/main/res/layout/activity_videoitem_list.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
22
android:layout_width="match_parent"
33
android:layout_height="match_parent"
4-
android:orientation="vertical" >
4+
android:orientation="vertical">
55

66
<ImageView android:id="@+id/list_view_watermark"
77
android:layout_width="match_parent"
@@ -16,6 +16,6 @@
1616
android:layout_width="match_parent"
1717
android:layout_height="match_parent"
1818
tools:context=".VideoItemListActivity"
19-
tools:layout="@android:layout/list_content" />
19+
tools:layout="@android:layout/list_content"/>
2020

2121
</LinearLayout>
-2.26 KB
Loading
-1.11 KB
Loading

0 commit comments

Comments
 (0)