Added setting to run tutorials directly from the app + updated README
This commit is contained in:
parent
2ae6bd699e
commit
7c6f4c78bf
6 changed files with 143 additions and 6 deletions
|
@ -122,6 +122,41 @@
|
|||
</receiver>
|
||||
|
||||
<service android:name="org.linphone.gcm.GCMService" />
|
||||
|
||||
<activity android:name="org.linphone.tutorials.TutorialLauncherActivity"
|
||||
android:theme="@style/NoTitle">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="org.linphone.tutorials.TutorialBuddyStatusActivity"
|
||||
android:theme="@style/NoTitle">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="org.linphone.tutorials.TutorialChatRoomActivity"
|
||||
android:theme="@style/NoTitle">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="org.linphone.tutorials.TutorialHelloWorldActivity"
|
||||
android:theme="@style/NoTitle">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="org.linphone.tutorials.TutorialRegistrationActivity"
|
||||
android:theme="@style/NoTitle">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
</application>
|
||||
|
||||
|
|
14
README
14
README
|
@ -4,13 +4,18 @@
|
|||
To build liblinphone for Android, you must:
|
||||
0) download the Android sdk with platform-tools and tools updated to latest revision (at least API 16 is needed), then add both 'tools' and 'platform-tools' folders in your path.
|
||||
1) download the Android ndk (>=r8b) from google and add it to your path.
|
||||
2) install the autotools: autoconf, automake, aclocal, libtoolize pkgconfig
|
||||
2) install the autotools: autoconf, automake, aclocal, libtoolize, pkgconfig
|
||||
2bis) on some 64 bits systems you'll need the ia32-libs package
|
||||
3) run the Makefile script in the top level directory. This will download iLBC source files and convert some assembly files in VP8 project.
|
||||
$ make
|
||||
4) To install the generated apk into a plugged device, run
|
||||
$ make install
|
||||
|
||||
To run the tutorials:
|
||||
1) open the res/values/non_localizable_custom.xml file and change the value of the show_tutorials_instead_of_app to true.
|
||||
2) compile again using make && make install.
|
||||
3) /!\ don't forget to put it back to false to run the linphone application normally. /!\
|
||||
|
||||
To create an apk with a different package name, you need to edit the custom_rules.xml file:
|
||||
1) look for the property named "linphone.package.name" and change it value accordingly
|
||||
2) run again the Makefile script by calling "make"
|
||||
|
@ -20,11 +25,12 @@ Some options can be passed to make, like "make SOME_OPTION=SOME_VALUE".
|
|||
Option Name | Possible values | Default value
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
BUILD_X264 0 (don't build x264) or 1 (build x264) | 0
|
||||
BUILD_AMRNB 0 (don't build amrnb codec), light (try to use amrnb codec from android), full (build your own amrnb codec) | light
|
||||
BUILD_AMRWB 0 (don't build amrwb codec), 1 (build your own amrwb codec) | 1
|
||||
BUILD_AMRNB 0 (don't build amrnb codec), light (try to use amrnb codec from android), full (build your own amrnb codec) | full
|
||||
BUILD_AMRWB 0 (don't build amrwb codec), 1 (build your own amrwb codec) | 0
|
||||
BUILD_GPLV3_ZRTP 0 (don't support ZRTP), 1 (support ZRTP and make the whole program GPLv3) | 0
|
||||
BUILD_SILK 0 (don't build silk plugin), 1 (build silk) [silk is Skype nonfree patented audio codec] | 0
|
||||
BUILD_SILK 0 (don't build silk plugin), 1 (build silk) [silk is Skype nonfree patented audio codec] | 1
|
||||
BUILD_G729 0 (don't build g729 plugin), 1 (build g729) [g729 is nonfree patented audio codec, contact Sipro lab for more details] | 0
|
||||
BUILD_TUNNEL 0 (don't build tunnel), 1 (build tunnel) [requires a tunnel implementation in submodules/linphone/tunnel] | 0
|
||||
BUILD_WEBRTC_AECM 0 (don't build echo canceler), 1 (build echo canceler) | 1
|
||||
USE_JAVAH 0 (don't generate header), 1 (generate header for linphone_core_jni) [used to check errors at liblinphone compilation] | 1
|
||||
BUILD_FOR_X86 0 (don't generate liblinphone libraries for x86 architecture), 1 (build liblinphone libraries for x86 architecture) | 1
|
||||
|
|
33
res/layout/tutorials.xml
Normal file
33
res/layout/tutorials.xml
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
<Button android:text="Hello world tutorial"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
android:onClick="startHelloWorldTutorial" />
|
||||
|
||||
<Button android:text="Registration tutorial"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
android:onClick="startRegistrationTutorial" />
|
||||
|
||||
<Button android:text="Chat room tutorial"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
android:onClick="startChatRoomTutorial" />
|
||||
|
||||
<Button android:text="Buddy status tutorial"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
android:onClick="startBuddyStatusTutorial" />
|
||||
|
||||
</LinearLayout>
|
|
@ -1,5 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Tutorial settings -->
|
||||
<bool name="show_tutorials_instead_of_app">false</bool> <!-- Be careful ! Setting this to true prevent the app from working ! It will only display tutorial activities -->
|
||||
|
||||
<!-- Push notification settings -->
|
||||
<bool name="enable_push_id">true</bool>
|
||||
<string name="push_sender_id">622464153529</string>
|
||||
|
|
|
@ -22,6 +22,7 @@ import static android.content.Intent.ACTION_MAIN;
|
|||
|
||||
import org.linphone.compatibility.Compatibility;
|
||||
import org.linphone.mediastream.Log;
|
||||
import org.linphone.tutorials.TutorialLauncherActivity;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
|
@ -74,12 +75,18 @@ public class LinphoneLauncherActivity extends Activity {
|
|||
}
|
||||
|
||||
protected void onServiceReady() {
|
||||
LinphoneService.instance().setActivityToLaunchOnIncomingReceived(LinphoneActivity.class);
|
||||
final Class<? extends Activity> classToStart;
|
||||
if (getResources().getBoolean(R.bool.show_tutorials_instead_of_app)) {
|
||||
classToStart = TutorialLauncherActivity.class;
|
||||
} else {
|
||||
classToStart = LinphoneActivity.class;
|
||||
}
|
||||
|
||||
LinphoneService.instance().setActivityToLaunchOnIncomingReceived(classToStart);
|
||||
mHandler.postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
startActivity(new Intent().setClass(LinphoneLauncherActivity.this, LinphoneActivity.class).setData(getIntent().getData()));
|
||||
startActivity(new Intent().setClass(LinphoneLauncherActivity.this, classToStart).setData(getIntent().getData()));
|
||||
finish();
|
||||
}
|
||||
}, 1000);
|
||||
|
|
53
src/org/linphone/tutorials/TutorialLauncherActivity.java
Normal file
53
src/org/linphone/tutorials/TutorialLauncherActivity.java
Normal file
|
@ -0,0 +1,53 @@
|
|||
package org.linphone.tutorials;
|
||||
/*
|
||||
TutorialLauncherActivity.java
|
||||
Copyright (C) 2013 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.
|
||||
*/
|
||||
|
||||
import org.linphone.R;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
/**
|
||||
* @author Sylvain Berfini
|
||||
*/
|
||||
public class TutorialLauncherActivity extends Activity {
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.tutorials);
|
||||
}
|
||||
|
||||
public void startHelloWorldTutorial(View v) {
|
||||
startActivity(new Intent().setClass(TutorialLauncherActivity.this, TutorialHelloWorldActivity.class));
|
||||
}
|
||||
|
||||
public void startRegistrationTutorial(View v) {
|
||||
startActivity(new Intent().setClass(TutorialLauncherActivity.this, TutorialRegistrationActivity.class));
|
||||
}
|
||||
|
||||
public void startChatRoomTutorial(View v) {
|
||||
startActivity(new Intent().setClass(TutorialLauncherActivity.this, TutorialChatRoomActivity.class));
|
||||
}
|
||||
|
||||
public void startBuddyStatusTutorial(View v) {
|
||||
startActivity(new Intent().setClass(TutorialLauncherActivity.this, TutorialBuddyStatusActivity.class));
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue