Full screen while in call + better proximity sensor effect
This commit is contained in:
parent
c3991cd339
commit
d9cbf18ad8
10 changed files with 20 additions and 94 deletions
|
@ -3,7 +3,7 @@
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/topLayout"
|
android:id="@+id/topLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res/org.linphone">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/fragmentContainer"
|
android:id="@+id/fragmentContainer"
|
||||||
|
|
8
res/values-v14/styles.xml
Normal file
8
res/values-v14/styles.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<style name="Default" parent="android:Theme.Holo" />
|
||||||
|
<style name="NoTitle" parent="android:Theme.Holo.NoActionBar" />
|
||||||
|
<style name="FullScreen" parent="android:Theme.Holo.NoActionBar.Fullscreen" />
|
||||||
|
|
||||||
|
</resources>
|
|
@ -22,7 +22,6 @@ import java.util.List;
|
||||||
|
|
||||||
import org.linphone.LinphoneSimpleListener.LinphoneOnCallEncryptionChangedListener;
|
import org.linphone.LinphoneSimpleListener.LinphoneOnCallEncryptionChangedListener;
|
||||||
import org.linphone.LinphoneSimpleListener.LinphoneOnCallStateChangedListener;
|
import org.linphone.LinphoneSimpleListener.LinphoneOnCallStateChangedListener;
|
||||||
import org.linphone.compatibility.Compatibility;
|
|
||||||
import org.linphone.core.LinphoneCall;
|
import org.linphone.core.LinphoneCall;
|
||||||
import org.linphone.core.LinphoneCall.State;
|
import org.linphone.core.LinphoneCall.State;
|
||||||
import org.linphone.core.LinphoneCallParams;
|
import org.linphone.core.LinphoneCallParams;
|
||||||
|
@ -41,9 +40,9 @@ import android.support.v4.app.FragmentActivity;
|
||||||
import android.support.v4.app.FragmentTransaction;
|
import android.support.v4.app.FragmentTransaction;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.WindowManager;
|
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.WindowManager;
|
||||||
import android.view.animation.Animation;
|
import android.view.animation.Animation;
|
||||||
import android.view.animation.Animation.AnimationListener;
|
import android.view.animation.Animation.AnimationListener;
|
||||||
import android.view.animation.AnimationUtils;
|
import android.view.animation.AnimationUtils;
|
||||||
|
@ -87,7 +86,6 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
Compatibility.setFullScreen(getWindow());
|
|
||||||
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||||
setContentView(R.layout.incall);
|
setContentView(R.layout.incall);
|
||||||
|
|
||||||
|
@ -417,9 +415,8 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
switchCamera.startAnimation(slideInTopToBottom);
|
switchCamera.startAnimation(slideInTopToBottom);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
resetControlsHidingCallBack();
|
|
||||||
}
|
}
|
||||||
|
resetControlsHidingCallBack();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1230,16 +1230,16 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
|
|
||||||
private static void simulateProximitySensorNearby(Activity activity, boolean nearby) {
|
private static void simulateProximitySensorNearby(Activity activity, boolean nearby) {
|
||||||
final Window window = activity.getWindow();
|
final Window window = activity.getWindow();
|
||||||
WindowManager.LayoutParams lAttrs = activity.getWindow().getAttributes();
|
WindowManager.LayoutParams params = window.getAttributes();
|
||||||
View view = ((ViewGroup) window.getDecorView().findViewById(android.R.id.content)).getChildAt(0);
|
View view = ((ViewGroup) window.getDecorView().findViewById(android.R.id.content)).getChildAt(0);
|
||||||
if (nearby) {
|
if (nearby) {
|
||||||
lAttrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
params.screenBrightness = 0.1f;
|
||||||
view.setVisibility(View.INVISIBLE);
|
view.setVisibility(View.INVISIBLE);
|
||||||
} else {
|
} else {
|
||||||
lAttrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
params.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE;
|
||||||
view.setVisibility(View.VISIBLE);
|
view.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
window.setAttributes(lAttrs);
|
window.setAttributes(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void proximityNearbyChanged() {
|
private static void proximityNearbyChanged() {
|
||||||
|
|
|
@ -300,6 +300,7 @@ public class StatusFragment extends Fragment {
|
||||||
MediaEncryption mediaEncryption = call.getCurrentParamsCopy().getMediaEncryption();
|
MediaEncryption mediaEncryption = call.getCurrentParamsCopy().getMediaEncryption();
|
||||||
|
|
||||||
exit.setVisibility(View.GONE);
|
exit.setVisibility(View.GONE);
|
||||||
|
statusText.setVisibility(View.GONE);
|
||||||
background.setVisibility(View.GONE);
|
background.setVisibility(View.GONE);
|
||||||
encryption.setVisibility(View.VISIBLE);
|
encryption.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
@ -312,7 +313,9 @@ public class StatusFragment extends Fragment {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
exit.setVisibility(View.VISIBLE);
|
exit.setVisibility(View.VISIBLE);
|
||||||
|
statusText.setVisibility(View.VISIBLE);
|
||||||
background.setVisibility(View.VISIBLE);
|
background.setVisibility(View.VISIBLE);
|
||||||
|
encryption.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,6 @@ import android.app.Notification;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.view.View;
|
|
||||||
import android.view.Window;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ApiElevenPlus.java
|
ApiElevenPlus.java
|
||||||
|
@ -83,13 +80,4 @@ public class ApiElevenPlus {
|
||||||
Context context, String title, String content, PendingIntent intent) {
|
Context context, String title, String content, PendingIntent intent) {
|
||||||
notif.setLatestEventInfo(context, title, content, intent);
|
notif.setLatestEventInfo(context, title, content, intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
|
||||||
public static void setFullScreen(Window window) {
|
|
||||||
window.getDecorView().setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
|
|
||||||
|
|
||||||
WindowManager.LayoutParams lAttrs = window.getAttributes();
|
|
||||||
lAttrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
|
||||||
window.setAttributes(lAttrs);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,8 +32,6 @@ import android.provider.ContactsContract.Contacts;
|
||||||
import android.provider.ContactsContract.Data;
|
import android.provider.ContactsContract.Data;
|
||||||
import android.provider.ContactsContract.Intents.Insert;
|
import android.provider.ContactsContract.Intents.Insert;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
import android.view.Window;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ApiFivePlus.java
|
ApiFivePlus.java
|
||||||
|
@ -345,10 +343,4 @@ public class ApiFivePlus {
|
||||||
public static void setNotificationLatestEventInfo(Notification notif, Context context, String title, String content, PendingIntent intent) {
|
public static void setNotificationLatestEventInfo(Notification notif, Context context, String title, String content, PendingIntent intent) {
|
||||||
notif.setLatestEventInfo(context, title, content, intent);
|
notif.setLatestEventInfo(context, title, content, intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setFullScreen(Window window) {
|
|
||||||
WindowManager.LayoutParams lAttrs = window.getAttributes();
|
|
||||||
lAttrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
|
||||||
window.setAttributes(lAttrs);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,38 +0,0 @@
|
||||||
package org.linphone.compatibility;
|
|
||||||
|
|
||||||
import android.annotation.TargetApi;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.Window;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
/*
|
|
||||||
ApiFourteenPlus.java
|
|
||||||
Copyright (C) 2012 Belledonne Communications, Grenoble, France
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU General Public License
|
|
||||||
as published by the Free Software Foundation; either version 2
|
|
||||||
of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*/
|
|
||||||
/**
|
|
||||||
* @author Sylvain Berfini
|
|
||||||
*/
|
|
||||||
|
|
||||||
@TargetApi(14)
|
|
||||||
public class ApiFourteenPlus {
|
|
||||||
public static void setFullScreen(Window window) {
|
|
||||||
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
|
|
||||||
|
|
||||||
WindowManager.LayoutParams lAttrs = window.getAttributes();
|
|
||||||
lAttrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
|
||||||
window.setAttributes(lAttrs);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -7,9 +7,6 @@ import android.app.Notification;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.view.View;
|
|
||||||
import android.view.Window;
|
|
||||||
import android.view.WindowManager;
|
|
||||||
/*
|
/*
|
||||||
ApiSixteenPlus.java
|
ApiSixteenPlus.java
|
||||||
Copyright (C) 2012 Belledonne Communications, Grenoble, France
|
Copyright (C) 2012 Belledonne Communications, Grenoble, France
|
||||||
|
@ -79,12 +76,4 @@ public class ApiSixteenPlus {
|
||||||
|
|
||||||
return notif;
|
return notif;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setFullScreen(Window window) {
|
|
||||||
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LOW_PROFILE);
|
|
||||||
|
|
||||||
WindowManager.LayoutParams lAttrs = window.getAttributes();
|
|
||||||
lAttrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
|
|
||||||
window.setAttributes(lAttrs);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,7 +35,6 @@ import android.graphics.Bitmap;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.view.Display;
|
import android.view.Display;
|
||||||
import android.view.Window;
|
|
||||||
/**
|
/**
|
||||||
* @author Sylvain Berfini
|
* @author Sylvain Berfini
|
||||||
*/
|
*/
|
||||||
|
@ -179,18 +178,6 @@ public class Compatibility {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setFullScreen(Window window) {
|
|
||||||
if (Version.sdkAboveOrEqual(16)) {
|
|
||||||
ApiSixteenPlus.setFullScreen(window);
|
|
||||||
} else if (Version.sdkAboveOrEqual(14)) {
|
|
||||||
ApiFourteenPlus.setFullScreen(window);
|
|
||||||
} else if (Version.sdkAboveOrEqual(11)) {
|
|
||||||
ApiElevenPlus.setFullScreen(window);
|
|
||||||
} else {
|
|
||||||
ApiFivePlus.setFullScreen(window);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean enableBluetoothHeadset(AudioManager mAudioManager) {
|
public static boolean enableBluetoothHeadset(AudioManager mAudioManager) {
|
||||||
if (Version.sdkAboveOrEqual(8)) {
|
if (Version.sdkAboveOrEqual(8)) {
|
||||||
|
|
Loading…
Reference in a new issue