Compare commits

...

14 Commits
dev ... main

Binary file not shown.

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>

@ -1,4 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<value>
<entry key="speechDemo">
<State />
</entry>
</value>
</component>
</project>

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/speechDemo" />
</set>
</option>
<option name="resolveExternalAnnotations" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectMigrations">
<option name="MigrateToGradleLocalJavaHome">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</component>
</project>

@ -0,0 +1,9 @@
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>

@ -0,0 +1,181 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidLayouts">
<shared>
<config />
</shared>
<layouts>
<layout url="file://$PROJECT_DIR$/src/main/res/layout/activity_face_identify.xml">
<config>
<theme>@style/Theme.Iflytek</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/src/main/res/layout/iatdemo.xml">
<config>
<theme>@style/Theme.Iflytek</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/src/main/res/layout/main.xml">
<config>
<theme>@style/Theme.Iflytek</theme>
</config>
</layout>
<layout url="file://$PROJECT_DIR$/src/main/res/xml/iat_setting.xml">
<config>
<theme>@style/Theme.Iflytek</theme>
</config>
</layout>
</layouts>
</component>
<component name="AutoImportSettings">
<option name="autoReloadType" value="NONE" />
</component>
<component name="ChangeListManager">
<list default="true" id="d581787a-e5d1-4af8-a64b-977f86e22095" name="Changes" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="ClangdSettings">
<option name="formatViaClangd" value="false" />
</component>
<component name="CodeInsightWorkspaceSettings">
<option name="optimizeImportsOnTheFly" value="true" />
</component>
<component name="ExecutionTargetManager" SELECTED_TARGET="device_and_snapshot_combo_box_target[CRX0222222002095]" />
<component name="ExternalProjectsData">
<projectState path="$PROJECT_DIR$">
<ProjectState />
</projectState>
</component>
<component name="ExternalProjectsManager">
<system id="GRADLE">
<state>
<projects_view>
<tree_state>
<expand>
<path>
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
<item name="speechDemo" type="f1a62948:ProjectNode" />
</path>
</expand>
<select />
</tree_state>
</projects_view>
</state>
</system>
</component>
<component name="ProjectId" id="2Wso22UUQ2vosUCV0MWwXOpa0j5" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
<option name="showVisibilityIcons" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.ShowReadmeOnStart": "true",
"RunOnceActivity.cidr.known.project.marker": "true",
"cf.first.check.clang-format": "false",
"cidr.known.project.marker": "true",
"com.google.services.firebase.aqiPopupShown": "true",
"dart.analysis.tool.window.visible": "false",
"last_opened_file_path": "D:/andior/Android_iat1145_87ccc405/sample/speechDemo",
"project.structure.last.edited": "Project",
"project.structure.proportion": "0.17",
"project.structure.side.proportion": "0.0",
"show.migrate.to.gradle.popup": "false"
}
}]]></component>
<component name="RunManager">
<configuration name="speechDemo" type="AndroidRunConfigurationType" factoryName="Android App">
<module name="speechDemo.main" />
<option name="DEPLOY" value="true" />
<option name="DEPLOY_APK_FROM_BUNDLE" value="false" />
<option name="DEPLOY_AS_INSTANT" value="false" />
<option name="ARTIFACT_NAME" value="" />
<option name="PM_INSTALL_OPTIONS" value="" />
<option name="ALL_USERS" value="false" />
<option name="ALWAYS_INSTALL_WITH_PM" value="false" />
<option name="CLEAR_APP_STORAGE" value="false" />
<option name="DYNAMIC_FEATURES_DISABLED_LIST" value="" />
<option name="ACTIVITY_EXTRA_FLAGS" value="" />
<option name="MODE" value="default_activity" />
<option name="CLEAR_LOGCAT" value="false" />
<option name="SHOW_LOGCAT_AUTOMATICALLY" value="false" />
<option name="INSPECTION_WITHOUT_ACTIVITY_RESTART" value="false" />
<option name="TARGET_SELECTION_MODE" value="DEVICE_AND_SNAPSHOT_COMBO_BOX" />
<option name="SELECTED_CLOUD_MATRIX_CONFIGURATION_ID" value="-1" />
<option name="SELECTED_CLOUD_MATRIX_PROJECT_ID" value="" />
<option name="DEBUGGER_TYPE" value="Auto" />
<Auto>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
<option name="DEBUG_SANDBOX_SDK" value="false" />
</Auto>
<Hybrid>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
<option name="DEBUG_SANDBOX_SDK" value="false" />
</Hybrid>
<Java>
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
<option name="DEBUG_SANDBOX_SDK" value="false" />
</Java>
<Native>
<option name="USE_JAVA_AWARE_DEBUGGER" value="false" />
<option name="SHOW_STATIC_VARS" value="true" />
<option name="WORKING_DIR" value="" />
<option name="TARGET_LOGGING_CHANNELS" value="lldb process:gdb-remote packets" />
<option name="SHOW_OPTIMIZED_WARNING" value="true" />
<option name="ATTACH_ON_WAIT_FOR_DEBUGGER" value="false" />
<option name="DEBUG_SANDBOX_SDK" value="false" />
</Native>
<Profilers>
<option name="ADVANCED_PROFILING_ENABLED" value="false" />
<option name="STARTUP_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_ENABLED" value="false" />
<option name="STARTUP_CPU_PROFILING_CONFIGURATION_NAME" value="Java/Kotlin Method Sample (legacy)" />
<option name="STARTUP_NATIVE_MEMORY_PROFILING_ENABLED" value="false" />
<option name="NATIVE_MEMORY_SAMPLE_RATE_BYTES" value="2048" />
</Profilers>
<option name="DEEP_LINK" value="" />
<option name="ACTIVITY_CLASS" value="" />
<option name="SEARCH_ACTIVITY_IN_GLOBAL_SCOPE" value="false" />
<option name="SKIP_ACTIVITY_VALIDATION" value="false" />
<method v="2">
<option name="Android.Gradle.BeforeRunTask" enabled="true" />
</method>
</configuration>
</component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="d581787a-e5d1-4af8-a64b-977f86e22095" name="Changes" comment="" />
<created>1697530437486</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1697530437486</updated>
</task>
<servers />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
<breakpoints>
<line-breakpoint enabled="true" type="java-line">
<url>file://$PROJECT_DIR$/src/main/java/com/iflytek/voicedemo/IatDemo.java</url>
<line>82</line>
<option name="timeStamp" value="5" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
</project>

@ -1,3 +1,5 @@
import com.android.ide.common.repository.main
plugins {
id("com.android.application")
}
@ -34,15 +36,16 @@ packaging {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}
dependencies {
implementation(files("D:\\notesmaster\\app\\libs\\Msc.jar"))
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.9.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
//implementation(fileTree(mapOf("dir" to "D:\\notesmaster\\httpcomponents-client-4.5.14-bin\\lib", "include" to listOf("*.aar", "*.jar"), "exclude" to listOf(""))))
implementation(files("D:\\notesmaster\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-osgi-4.5.14.jar"))
implementation(files("D:\\notesmaster\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-osgi-4.5.14.jar"))
implementation(files("D:\\notesmaster\\httpcomponents-client-4.5.14-bin\\lib\\httpclient-win-4.5.14.jar"))
implementation(files("D:\\notesmaster\\httpcomponents-client-4.5.14-bin\\lib\\httpcore-4.4.16.jar"))

Binary file not shown.

@ -4,15 +4,26 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:name=".voicedemo.SpeechApp"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
@ -26,29 +37,26 @@
<activity
android:name=".ui.NotesListActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop"
android:theme="@style/NoteTheme"
android:uiOptions="splitActionBarWhenNarrow"
android:windowSoftInputMode="adjustPan"
android:exported="true">
android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.NoteEditActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/NoteTheme"
android:exported="true">
android:theme="@style/NoteTheme">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/text_note" />
<data android:mimeType="vnd.android.cursor.item/call_note" />
</intent-filter>
@ -56,6 +64,7 @@
<intent-filter>
<action android:name="android.intent.action.INSERT_OR_EDIT" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.item/text_note" />
<data android:mimeType="vnd.android.cursor.item/call_note" />
</intent-filter>
@ -78,8 +87,8 @@
<receiver
android:name=".widget.NoteWidgetProvider_2x"
android:label="@string/app_widget2x2"
android:exported="true">
android:exported="true"
android:label="@string/app_widget2x2">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="android.appwidget.action.APPWIDGET_DELETED" />
@ -92,8 +101,8 @@
</receiver>
<receiver
android:name=".widget.NoteWidgetProvider_4x"
android:label="@string/app_widget4x4"
android:exported="true">
android:exported="true"
android:label="@string/app_widget4x4">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
@ -106,7 +115,8 @@
android:resource="@xml/widget_4x_info" />
</receiver>
<receiver android:name=".ui.AlarmInitReceiver"
<receiver
android:name=".ui.AlarmInitReceiver"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
@ -115,27 +125,33 @@
<receiver
android:name="net.micode.notes.ui.AlarmReceiver"
android:process=":remote" >
</receiver>
android:process=":remote"></receiver>
<activity
android:name=".ui.AlarmAlertActivity"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar" >
</activity>
android:theme="@android:style/Theme.Holo.Wallpaper.NoTitleBar"></activity>
<activity
android:name="net.micode.notes.ui.NotesPreferenceActivity"
android:label="@string/preferences_title"
android:launchMode="singleTop"
android:theme="@android:style/Theme.Holo.Light" >
android:theme="@android:style/Theme.Holo.Light"></activity>
<activity
android:name="net.micode.notes.Login.LoginActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="net.micode.notes.video.videoactivity" />
<activity android:name="net.micode.notes.Login.Register" />
<service
android:name="net.micode.notes.gtask.remote.GTaskSyncService"
android:exported="false" >
</service>
android:exported="false"></service>
<meta-data
android:name="android.app.default_searchable"

@ -0,0 +1,12 @@
#BNF+IAT 1.0 UTF-8;
!grammar call;
!slot <contact>;
!slot <callPre>;
!slot <callPhone>;
!slot <callTo>;
!start <callStart>;
<callStart>:[<callPre>][<callTo>]<contact><callPhone>|[<callPre>]<callPhone>[<callTo>]<contact>;
<contact>:张海洋;
<callPre>:我要|我想|我想要;
<callPhone>:打电话;
<callTo>:给;

@ -0,0 +1,8 @@
#ABNF 1.0 UTF-8;
language zh-CN;
mode voice;
root $main;
$main = $place1 到 $place2;
$place1 = 北京|武汉|南京|天津|东京;
$place2 = 上海|合肥;

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

@ -0,0 +1 @@
{"userword":[{"name":"我的常用词","words":["佳晨实业","蜀南庭苑","高兰路","复联二"]},{"name":"我的好友","words":["李馨琪","鹿晓雷","张集栋","周家莉","叶震珂","熊泽萌"]}]}

@ -0,0 +1,124 @@
package net.micode.notes.Login;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.widget.VideoView;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.Nullable;
import net.micode.notes.R;
import net.micode.notes.ui.NotesListActivity;
import net.micode.notes.video.videoactivity;
public class LoginActivity extends Activity {
private EditText account;
private EditText passwordEdit;
public static String Account;
public static String Password;
private static SharedPreferences sp;
private Button login;
private int secret_mode;
int cnt=0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.password);
sp = PreferenceManager.getDefaultSharedPreferences(LoginActivity.this);
AgainInto();
// NotesListActivity.init_secret_mode();
if(secret_mode==1)
init();
else{
Intent intent=new Intent(LoginActivity.this, NotesListActivity.class);
startActivity(intent);
finish();
}
}
private void AgainInto() {
//如果获取为空就返回默认值
Account=sp.getString("name","");
Password=sp.getString("password","");
secret_mode=sp.getInt("secret",0);
}
public static void change_val(String name,String password)
{
Log.e("leo",name);
sp.edit().putString("name",name).apply();
sp.edit().putString("password",password).apply();
Account=sp.getString("name","");
Password=sp.getString("password","");
}
public static void change_secret()
{
int v=sp.getInt("secret",0);
sp.edit().putInt("secret",1-v).apply();
}
private void init()
{
account=(EditText) findViewById(R.id.account);
passwordEdit=(EditText) findViewById(R.id.password);
login=(Button) findViewById(R.id.login);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String account_=account.getText().toString();
String password_=passwordEdit.getText().toString();
Log.e("leo",Account);
Log.e("leo",Password);
if(Account==null||Password==null){
Log.e("leo","WCNM");
}
if(account_.equals(Account)&&password_.equals(Password)){
ProgressDialog progressDialog=new ProgressDialog(LoginActivity.this);
progressDialog.setTitle("登录中");
progressDialog.setMessage("Loading...");
progressDialog.setCancelable(true);
progressDialog.show();
Intent intent=new Intent(LoginActivity.this, NotesListActivity.class);
startActivity(intent);
finish();
}else{
cnt++;
String print="第"+Integer.toString(cnt)+"密码错误";
Toast.makeText(LoginActivity.this,print,Toast.LENGTH_SHORT).show();
if(cnt==5) {
Intent intent = new Intent(LoginActivity.this, videoactivity.class);
startActivity(intent);
cnt=0;
}
// finish();
// AlertDialog.Builder builder=new AlertDialog.Builder(LoginActivity.this);
// builder.setIcon(R.drawable.baseline_error_24)
// .setTitle("密码错误")
// .setMessage("请重新输入")
// .create()
// .show();
}
}
});
}
}

@ -0,0 +1,68 @@
package net.micode.notes.Login;
import android.app.Activity;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.Nullable;
import net.micode.notes.R;
import net.micode.notes.USER.MyDatabaseHelper;
import net.micode.notes.ui.NotesListActivity;
public class Register extends Activity {
private EditText register_username;
private EditText register_password;
private Button register2_button;
private MyDatabaseHelper databaseHelper;
public static int re_register=0;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
databaseHelper=new MyDatabaseHelper(this,"temp",null,1);
databaseHelper.getWritableDatabase();
register_username=(EditText) findViewById(R.id.register_username);
register_password=(EditText) findViewById(R.id.register_password);
register2_button=(Button) findViewById(R.id.register2_button);
register2_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(register_username.length()==0){
Toast.makeText(Register.this, "请输入用户名", Toast.LENGTH_SHORT).show();
return;
}
if(register_password.length()==0){
Toast.makeText(Register.this,"请输入密码",Toast.LENGTH_SHORT).show();
return;
}
LoginActivity.change_val(register_username.getText().toString(),register_password.getText().toString());
if(re_register==0) {
NotesListActivity.change_secret_mode();
Toast.makeText(Register.this, "进入隐私模式", Toast.LENGTH_SHORT).show();
finish();
}else{
re_register=0;
finish();
}
}
});
}
}

@ -3,6 +3,7 @@ package net.micode.notes;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {

@ -0,0 +1,37 @@
package net.micode.notes.USER;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
import androidx.annotation.Nullable;
public class MyDatabaseHelper extends SQLiteOpenHelper {
public static String SQL_NAME="MyDatabaseHelper" ;
private static final String CREATE_USER=
"CREATE TABLE "+SQL_NAME+"("+
User.NAME+" TEXT PRIMARY KEY,"+
User.PASSWORD+" TEXT"+
")";
private Context mcontext;
public MyDatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
mcontext=context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_USER);
Toast.makeText(mcontext, "数据库创建成功", Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

@ -0,0 +1,31 @@
package net.micode.notes.USER;
public class User {
private String name;
private String password;
public static String NAME="name_";
public static String PASSWORD="password_";
public User(String name,String password){
super();
this.name=name;
this.password=password;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

@ -26,7 +26,7 @@ import android.util.Log;
import java.util.HashMap;
public class Contact {
private static HashMap<String, String> sContactCache;
private static HashMap<String, String> sContactCache;//联系人缓存
private static final String TAG = "Contact";
private static final String CALLER_ID_SELECTION = "PHONE_NUMBERS_EQUAL(" + Phone.NUMBER
@ -35,17 +35,24 @@ public class Contact {
+ "(SELECT raw_contact_id "
+ " FROM phone_lookup"
+ " WHERE min_match = '+')";
//联系人的信息
public static String getContact(Context context, String phoneNumber) {
//返回联系人名字的接口
public static String getContact(Context context, String phoneNumber) {//Context http://t.csdnimg.cn/pXvEv
if(sContactCache == null) {
sContactCache = new HashMap<String, String>();
}
if(sContactCache.containsKey(phoneNumber)) {
if(sContactCache.containsKey(phoneNumber)) {//containsKey 如果此映射包含指定键的映射关系,则返回 true
return sContactCache.get(phoneNumber);
}
String selection = CALLER_ID_SELECTION.replace("+",
// String replace(char oldChar, char newChar)
// 用新字符newChar 替换所有的 旧字符oldChar 。
//
// String replace(CharSequence target, CharSequence replacement)
// 用新字符串replacement替换所有的旧字符串target。
PhoneNumberUtils.toCallerIDMinMatch(phoneNumber));
Cursor cursor = context.getContentResolver().query(
Data.CONTENT_URI,

@ -17,6 +17,7 @@
package net.micode.notes.data;
import android.net.Uri;
public class Notes {
public static final String AUTHORITY = "micode_notes";
public static final String TAG = "Notes";
@ -46,7 +47,7 @@ public class Notes {
public static final int TYPE_WIDGET_2X = 0;
public static final int TYPE_WIDGET_4X = 1;
public static class DataConstants {
public static class DataConstants {//数据常量
public static final String NOTE = TextNote.CONTENT_ITEM_TYPE;
public static final String CALL_NOTE = CallNote.CONTENT_ITEM_TYPE;
}
@ -61,26 +62,30 @@ public class Notes {
*/
public static final Uri CONTENT_DATA_URI = Uri.parse("content://" + AUTHORITY + "/data");
public interface NoteColumns {
public interface NoteColumns {//备注列
/**
* ID
* The unique ID for a row
* <P> Type: INTEGER (long) </P>
*/
public static final String ID = "_id";
/**
* 便 ID
* The parent's id for note or folder
* <P> Type: INTEGER (long) </P>
*/
public static final String PARENT_ID = "parent_id";
/**
*
* Created data for note or folder
* <P> Type: INTEGER (long) </P>
*/
public static final String CREATED_DATE = "created_date";
/**
*
* Latest modified date
* <P> Type: INTEGER (long) </P>
*/
@ -88,36 +93,43 @@ public class Notes {
/**
*
* Alert date
* <P> Type: INTEGER (long) </P>
*/
public static final String ALERTED_DATE = "alert_date";
/**
*
* Folder's name or text content of note
* <P> Type: TEXT </P>
*/
public static final String SNIPPET = "snippet";
/**
* ID
* Note's widget id
* <P> Type: INTEGER (long) </P>
*/
public static final String WIDGET_ID = "widget_id";
/**
*
* Note's widget type
* <P> Type: INTEGER (long) </P>
*/
public static final String WIDGET_TYPE = "widget_type";
/**
* id
* Note's background color's id
* <P> Type: INTEGER (long) </P>
*/
public static final String BG_COLOR_ID = "bg_color_id";
/**
*
*
* For text note, it doesn't has attachment, for multi-media
* note, it has at least one attachment
* <P> Type: INTEGER </P>
@ -125,30 +137,35 @@ public class Notes {
public static final String HAS_ATTACHMENT = "has_attachment";
/**
*
* Folder's count of notes
* <P> Type: INTEGER (long) </P>
*/
public static final String NOTES_COUNT = "notes_count";
/**
* 便
* The file type: folder or note
* <P> Type: INTEGER </P>
*/
public static final String TYPE = "type";
/**
* ID
* The last sync id
* <P> Type: INTEGER (long) </P>
*/
public static final String SYNC_ID = "sync_id";
/**
*
* Sign to indicate local modified or not
* <P> Type: INTEGER </P>
*/
public static final String LOCAL_MODIFIED = "local_modified";
/**
* ID
* Original parent id before moving into temporary folder
* <P> Type : INTEGER </P>
*/
@ -161,44 +178,51 @@ public class Notes {
public static final String GTASK_ID = "gtask_id";
/**
*
* The version code
* <P> Type : INTEGER (long) </P>
*/
public static final String VERSION = "version";
}
public interface DataColumns {
public interface DataColumns {//数据列
/**
* ID
* The unique ID for a row
* <P> Type: INTEGER (long) </P>
*/
public static final String ID = "_id";
/**
* MIME
* The MIME type of the item represented by this row.
* <P> Type: Text </P>
*/
public static final String MIME_TYPE = "mime_type";
/**
* ID
* The reference id to note that this data belongs to
* <P> Type: INTEGER (long) </P>
*/
public static final String NOTE_ID = "note_id";
/**
*
* Created data for note or folder
* <P> Type: INTEGER (long) </P>
*/
public static final String CREATED_DATE = "created_date";
/**
*
* Latest modified date
* <P> Type: INTEGER (long) </P>
*/
public static final String MODIFIED_DATE = "modified_date";
/**
*
* Data's content
* <P> Type: TEXT </P>
*/
@ -206,35 +230,37 @@ public class Notes {
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* {@link # MIMETYPE}
*
* Generic data column, the meaning is {@link # MIMETYPE} specific, used for
* integer data type
* <P> Type: INTEGER </P>
*/
public static final String DATA1 = "data1";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* Generic data column, the meaning is {@link # MIMETYPE} specific, used for
* integer data type
* <P> Type: INTEGER </P>
*/
public static final String DATA2 = "data2";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* Generic data column, the meaning is {@link # MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
public static final String DATA3 = "data3";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* Generic data column, the meaning is {@link # MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
public static final String DATA4 = "data4";
/**
* Generic data column, the meaning is {@link #MIMETYPE} specific, used for
* Generic data column, the meaning is {@link # MIMETYPE} specific, used for
* TEXT data type
* <P> Type: TEXT </P>
*/
@ -243,6 +269,8 @@ public class Notes {
public static final class TextNote implements DataColumns {
/**
*
* 1 0
* Mode to indicate the text in check list mode or not
* <P> Type: Integer 1:check list mode 0: normal mode </P>
*/
@ -259,12 +287,15 @@ public class Notes {
public static final class CallNote implements DataColumns {
/**
*
*INTEGER
* Call date for this record
* <P> Type: INTEGER (long) </P>
*/
public static final String CALL_DATE = DATA1;
/**
*
* Phone number for this record
* <P> Type: TEXT </P>
*/

@ -25,7 +25,7 @@ import org.json.JSONException;
import org.json.JSONObject;
public class MetaData extends Task {
public class MetaData extends Task {//元数据
private final static String TAG = MetaData.class.getSimpleName();
private String mRelatedGid = null;
@ -50,7 +50,7 @@ public class MetaData extends Task {
}
@Override
public void setContentByRemoteJSON(JSONObject js) {
public void setContentByRemoteJSON(JSONObject js) {//通过远程JSON设置内容
super.setContentByRemoteJSON(js);
if (getNotes() != null) {
try {

@ -135,7 +135,7 @@ public class Task extends Node {
return js;
}
public void setContentByRemoteJSON(JSONObject js) {
public void setContentByRemoteJSON(JSONObject js) {//通过远程JSON设置内容
if (js != null) {
try {
// id
@ -175,7 +175,7 @@ public class Task extends Node {
}
}
public void setContentByLocalJSON(JSONObject js) {
public void setContentByLocalJSON(JSONObject js) {//按本地 JSON 设置内容
if (js == null || !js.has(GTaskStringUtils.META_HEAD_NOTE)
|| !js.has(GTaskStringUtils.META_HEAD_DATA)) {
Log.w(TAG, "setContentByLocalJSON: nothing is avaiable");
@ -204,7 +204,7 @@ public class Task extends Node {
}
}
public JSONObject getLocalJSONFromContent() {
public JSONObject getLocalJSONFromContent() {//从内容中获取本地 JSON
String name = getName();
try {
if (mMetaInfo == null) {
@ -247,7 +247,7 @@ public class Task extends Node {
}
}
public void setMetaInfo(MetaData metaData) {
public void setMetaInfo(MetaData metaData) {//设置元信息
if (metaData != null && metaData.getNotes() != null) {
try {
mMetaInfo = new JSONObject(metaData.getNotes());
@ -258,7 +258,7 @@ public class Task extends Node {
}
}
public int getSyncAction(Cursor c) {
public int getSyncAction(Cursor c) {//获取同步操作
try {
JSONObject noteInfo = null;
if (mMetaInfo != null && mMetaInfo.has(GTaskStringUtils.META_HEAD_NOTE)) {

@ -39,6 +39,7 @@ public class Note {
private NoteData mNoteData;
private static final String TAG = "Note";
/**
* ID便
* Create a new note id for adding a new note to databases
*/
public static synchronized long getNewNoteId(Context context, long folderId) {

@ -0,0 +1,168 @@
package net.micode.notes.speech.util;
import org.json.JSONArray;
import org.json.JSONObject;
import org.json.JSONTokener;
public class JsonParser {
public static String parseIatResult(String json) {
StringBuffer ret = new StringBuffer();
try {
JSONTokener tokener = new JSONTokener(json);
JSONObject joResult = new JSONObject(tokener);
JSONArray words = joResult.getJSONArray("ws");
for (int i = 0; i < words.length(); i++) {
// 转写结果词,默认使用第一个结果
JSONArray items = words.getJSONObject(i).getJSONArray("cw");
JSONObject obj = items.getJSONObject(0);
ret.append(obj.getString("w"));
// 如果需要多候选结果,解析数组其他字段
// for(int j = 0; j < items.length(); j++)
// {
// JSONObject obj = items.getJSONObject(j);
// ret.append(obj.getString("w"));
// }
}
} catch (Exception e) {
e.printStackTrace();
}
return ret.toString();
}
public static String parseGrammarResult(String json, String engType) {
StringBuffer ret = new StringBuffer();
try {
JSONTokener tokener = new JSONTokener(json);
JSONObject joResult = new JSONObject(tokener);
JSONArray words = joResult.getJSONArray("ws");
// 云端和本地结果分情况解析
if ("cloud".equals(engType)) {
for (int i = 0; i < words.length(); i++) {
JSONArray items = words.getJSONObject(i).getJSONArray("cw");
for (int j = 0; j < items.length(); j++) {
JSONObject obj = items.getJSONObject(j);
if (obj.getString("w").contains("nomatch")) {
ret.append("没有匹配结果.");
return ret.toString();
}
ret.append("【结果】" + obj.getString("w"));
ret.append("【置信度】" + obj.getInt("sc"));
ret.append("\n");
}
}
} else if ("local".equals(engType)) {
ret.append("【结果】");
for (int i = 0; i < words.length(); i++) {
JSONObject wsItem = words.getJSONObject(i);
JSONArray items = wsItem.getJSONArray("cw");
if ("<contact>".equals(wsItem.getString("slot"))) {
// 可能会有多个联系人供选择,用中括号括起来,这些候选项具有相同的置信度
ret.append("【");
for (int j = 0; j < items.length(); j++) {
JSONObject obj = items.getJSONObject(j);
if (obj.getString("w").contains("nomatch")) {
ret.append("没有匹配结果.");
return ret.toString();
}
ret.append(obj.getString("w")).append("|");
}
ret.setCharAt(ret.length() - 1, '】');
} else {
//本地多候选按照置信度高低排序,一般选取第一个结果即可
JSONObject obj = items.getJSONObject(0);
if (obj.getString("w").contains("nomatch")) {
ret.append("没有匹配结果.");
return ret.toString();
}
ret.append(obj.getString("w"));
}
}
ret.append("【置信度】" + joResult.getInt("sc"));
ret.append("\n");
}
} catch (Exception e) {
e.printStackTrace();
ret.append("没有匹配结果.");
}
return ret.toString();
}
public static String parseGrammarResult(String json) {
StringBuffer ret = new StringBuffer();
try {
JSONTokener tokener = new JSONTokener(json);
JSONObject joResult = new JSONObject(tokener);
JSONArray words = joResult.getJSONArray("ws");
for (int i = 0; i < words.length(); i++) {
JSONArray items = words.getJSONObject(i).getJSONArray("cw");
for (int j = 0; j < items.length(); j++) {
JSONObject obj = items.getJSONObject(j);
if (obj.getString("w").contains("nomatch")) {
ret.append("没有匹配结果.");
return ret.toString();
}
ret.append("【结果】" + obj.getString("w"));
ret.append("【置信度】" + obj.getInt("sc"));
ret.append("\n");
}
}
} catch (Exception e) {
e.printStackTrace();
ret.append("没有匹配结果.");
}
return ret.toString();
}
public static String parseLocalGrammarResult(String json) {
StringBuffer ret = new StringBuffer();
try {
JSONTokener tokener = new JSONTokener(json);
JSONObject joResult = new JSONObject(tokener);
JSONArray words = joResult.getJSONArray("ws");
for (int i = 0; i < words.length(); i++) {
JSONArray items = words.getJSONObject(i).getJSONArray("cw");
for (int j = 0; j < items.length(); j++) {
JSONObject obj = items.getJSONObject(j);
if (obj.getString("w").contains("nomatch")) {
ret.append("没有匹配结果.");
return ret.toString();
}
ret.append("【结果】" + obj.getString("w"));
ret.append("\n");
}
}
ret.append("【置信度】" + joResult.optInt("sc"));
} catch (Exception e) {
e.printStackTrace();
ret.append("没有匹配结果.");
}
return ret.toString();
}
public static String parseTransResult(String json, String key) {
StringBuffer ret = new StringBuffer();
try {
JSONTokener tokener = new JSONTokener(json);
JSONObject joResult = new JSONObject(tokener);
String errorCode = joResult.optString("ret");
if (!errorCode.equals("0")) {
return joResult.optString("errmsg");
}
JSONObject transResult = joResult.optJSONObject("trans_result");
ret.append(transResult.optString(key));
/*JSONArray words = joResult.getJSONArray("results");
for (int i = 0; i < words.length(); i++) {
JSONObject obj = words.getJSONObject(i);
ret.append(obj.getString(key));
}*/
} catch (Exception e) {
e.printStackTrace();
}
return ret.toString();
}
}

@ -43,6 +43,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@ -52,21 +53,37 @@ import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.iflytek.cloud.ErrorCode;
import com.iflytek.cloud.InitListener;
import com.iflytek.cloud.RecognizerResult;
import com.iflytek.cloud.SpeechConstant;
import com.iflytek.cloud.SpeechError;
import com.iflytek.cloud.SpeechRecognizer;
import com.iflytek.cloud.SpeechUtility;
import com.iflytek.cloud.ui.RecognizerDialog;
import com.iflytek.cloud.ui.RecognizerDialogListener;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.TextNote;
import net.micode.notes.model.WorkingNote;
import net.micode.notes.model.WorkingNote.NoteSettingChangedListener;
import net.micode.notes.speech.util.JsonParser;
import net.micode.notes.tool.DataUtils;
import net.micode.notes.tool.ResourceParser;
import net.micode.notes.tool.ResourceParser.TextAppearanceResources;
import net.micode.notes.ui.DateTimePickerDialog.OnDateTimeSetListener;
import net.micode.notes.ui.NoteEditText.OnTextViewChangeListener;
import net.micode.notes.voicedemo.SpeechApp;
import net.micode.notes.widget.NoteWidgetProvider_2x;
import net.micode.notes.widget.NoteWidgetProvider_4x;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -149,8 +166,23 @@ public class NoteEditActivity extends Activity implements OnClickListener,
private String mUserQuery;
private Pattern mPattern;
//--------------------------------------------------
private Toast mToast;
private Button yuyin;
private StringBuffer buffer = new StringBuffer();
private SpeechRecognizer mIat;
private String mEngineType = SpeechConstant.TYPE_CLOUD;
private String resultType = "json";
private String language = "zh_cn";
private RecognizerDialog mIatDialog;
private HashMap<String, String> mIatResults = new LinkedHashMap<>();
private EditText mResultText;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.e("debug","noteEditActivity");
super.onCreate(savedInstanceState);
this.setContentView(R.layout.note_edit);
@ -159,6 +191,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
return;
}
initResources();
myinit();
}
/**
@ -362,7 +395,136 @@ public class NoteEditActivity extends Activity implements OnClickListener,
}
return true;
}
//--------------------------------------------------
private void myinit()
{
yuyin=(Button)findViewById(R.id.yuyin);
SpeechApp.initializeMsc(NoteEditActivity.this);
yuyin.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (null == mIat) {
// 创建单例失败,与 21001 错误为同样原因,参考 http://bbs.xfyun.cn/forum.php?mod=viewthread&tid=9688
showTip("创建对象失败,请确认 libmsc.so 放置正确,且有调用 createUtility 进行初始化");
return;
}
buffer.setLength(0);
mResultText.setText(null);// 清空显示内容
mIatResults.clear();
mIatDialog.setListener(mRecognizerDialogListener);
setParam();
mIatDialog.show();
showTip("请开始说话…");
}
});
mIat = SpeechRecognizer.createRecognizer(this, mInitListener);
mIatDialog = new RecognizerDialog(this, mInitListener);
mResultText = ((EditText) findViewById(R.id.iat_text));
}
private RecognizerDialogListener mRecognizerDialogListener = new RecognizerDialogListener() {
// 返回结果
public void onResult(RecognizerResult results, boolean isLast) {
printResult(results);
}
// 识别回调错误
public void onError(SpeechError error) {
showTip(error.getPlainDescription(true));
}
};
public void setParam() {
// 清空参数
mIat.setParameter(SpeechConstant.PARAMS, null);
// 设置听写引擎
mIat.setParameter(SpeechConstant.ENGINE_TYPE, mEngineType);
// 设置返回结果格式
mIat.setParameter(SpeechConstant.RESULT_TYPE, resultType);
if (language.equals("zh_cn")) {
String lag = "mandarin";
// 设置语言
Log.e(TAG, "language = " + language);
mIat.setParameter(SpeechConstant.LANGUAGE, "zh_cn");
// 设置语言区域
mIat.setParameter(SpeechConstant.ACCENT, lag);
} else {
mIat.setParameter(SpeechConstant.LANGUAGE, language);
}
Log.e(TAG, "last language:" + mIat.getParameter(SpeechConstant.LANGUAGE));
//此处用于设置dialog中不显示错误码信息
//mIat.setParameter("view_tips_plain","false");
// 设置语音前端点:静音超时时间,即用户多长时间不说话则当做超时处理
mIat.setParameter(SpeechConstant.VAD_BOS, "4000");
// 设置语音后端点:后端点静音检测时间,即用户停止说话多长时间内即认为不再输入, 自动停止录音
mIat.setParameter(SpeechConstant.VAD_EOS, "1000");
// 设置标点符号,设置为"0"返回结果无标点,设置为"1"返回结果有标点
mIat.setParameter(SpeechConstant.ASR_PTT, "1");
// 设置音频保存路径保存音频格式支持pcm、wav.
mIat.setParameter(SpeechConstant.AUDIO_FORMAT, "wav");
mIat.setParameter(SpeechConstant.ASR_AUDIO_PATH,
getExternalFilesDir("msc").getAbsolutePath() + "/iat.wav");
}
private void printResult(RecognizerResult results) {
String text = JsonParser.parseIatResult(results.getResultString());
String sn = null;
// 读取json结果中的sn字段
try {
JSONObject resultJson = new JSONObject(results.getResultString());
sn = resultJson.optString("sn");
} catch (JSONException e) {
e.printStackTrace();
}
mIatResults.put(sn, text);
StringBuffer resultBuffer = new StringBuffer();
for (String key : mIatResults.keySet()) {
resultBuffer.append(mIatResults.get(key));
}
mResultText.setText(resultBuffer.toString());
mResultText.setSelection(mResultText.length());
}
private void showTip(final String str) {
if (mToast != null) {
mToast.cancel();
}
mToast = Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT);
mToast.show();
}
private InitListener mInitListener = new InitListener() {
@Override
public void onInit(int code) {
Log.d(TAG, "SpeechRecognizer init() code = " + code);
if (code != ErrorCode.SUCCESS) {
showTip("初始化失败,错误码:" + code);
}
}
};
private RecognizerDialogListener recognizerDialogListener = new RecognizerDialogListener() {
@Override
public void onError(SpeechError error) {
// TODO Auto-generated method stub
}
//当说话说完后会回调该方法JSON字符串在result
@Override
public void onResult(RecognizerResult result, boolean isLast) {
Log.d(TAG, result.getResultString());
printResult(result);
}
};
//-------------------------------------------------------------------
private void initResources() {
mHeadViewPanel = findViewById(R.id.note_title);
mNoteHeaderHolder = new HeadViewHolder();
@ -429,8 +591,7 @@ public class NoteEditActivity extends Activity implements OnClickListener,
int id = v.getId();
if (id == R.id.btn_set_bg_color) {
mNoteBgColorSelector.setVisibility(View.VISIBLE);
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
- View.VISIBLE);
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(View.VISIBLE);
} else if (sBgSelectorBtnsMap.containsKey(id)) {
findViewById(sBgSelectorSelectionMap.get(mWorkingNote.getBgColorId())).setVisibility(
View.GONE);

@ -60,6 +60,8 @@ import android.widget.PopupMenu;
import android.widget.TextView;
import android.widget.Toast;
import net.micode.notes.Login.LoginActivity;
import net.micode.notes.Login.Register;
import net.micode.notes.R;
import net.micode.notes.data.Notes;
import net.micode.notes.data.Notes.NoteColumns;
@ -135,15 +137,40 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
private final static int REQUEST_CODE_OPEN_NODE = 102;
private final static int REQUEST_CODE_NEW_NODE = 103;
public static int secret_mode = -1;
public static String SECRET="secret_mode";
public static String NOW_MODE="now_mode";
public static SharedPreferences settings;
//主页面ui创建
//@Override
//https://blog.csdn.net/qq_61902168/article/details/130019795?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171246904616800213030759%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171246904616800213030759&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-130019795-null-null.142^v100^pc_search_result_base3&utm_term=%20%20%20%20%40Override&spm=1018.2226.3001.4187
//android开发之onCreate( )方法详解
//http://t.csdnimg.cn/LyhZT
@Override
protected void onCreate(Bundle savedInstanceState) {
//super是调用父类的,this是调用你覆盖的
//https://blog.csdn.net/sjpz0124/article/details/45399493?ops_request_misc=&request_id=&biz_id=102&utm_term=super.onCreate&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-6-45399493.142^v100^pc_search_result_base3&spm=1018.2226.3001.4187
super.onCreate(savedInstanceState);
setContentView(R.layout.note_list);
initResources();
/**
settings=PreferenceManager.getDefaultSharedPreferences(NotesListActivity.this);
boolean k1=settings.getBoolean(NOW_MODE,false);
boolean k2=settings.getBoolean(SECRET,false);
if(k2==false){
secret_mode=-1;
}else{
if(k1) secret_mode=1;
else secret_mode=0;
}
/*
* Insert an introduction when user firstly use this application
* 使
*/
setAppInfoFromRawRes();
}
@ -163,7 +190,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
StringBuilder sb = new StringBuilder();
InputStream in = null;
try {
in = getResources().openRawResource(R.raw.introduction);
in = getResources().openRawResource(R.raw.introduction);
if (in != null) {
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
@ -209,11 +236,15 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
startAsyncNotesListQuery();
}
//数据初始化
private void initResources() {
mContentResolver = this.getContentResolver();
mBackgroundQueryHandler = new BackgroundQueryHandler(this.getContentResolver());
mCurrentFolderId = Notes.ID_ROOT_FOLDER;
mNotesListView = (ListView) findViewById(R.id.notes_list);
//Android ListView的addHeaderView与addFooterView的详解
//http://t.csdnimg.cn/gOVVL
//添加一个固定视图以显示在列表底部。如果多次调用 addFooterView则视图将按添加顺序显示。如果需要使用此调用添加的视图可以占据焦点。
mNotesListView.addFooterView(LayoutInflater.from(this).inflate(R.layout.note_list_footer, null),
null, false);
mNotesListView.setOnItemClickListener(new OnListItemClickListener());
@ -221,6 +252,8 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
mNotesListAdapter = new NotesListAdapter(this);
mNotesListView.setAdapter(mNotesListAdapter);
mAddNewNote = (Button) findViewById(R.id.btn_new_note);
//Android开发 Button setOnClickListener
//http://t.csdnimg.cn/IpdFo
mAddNewNote.setOnClickListener(this);
mAddNewNote.setOnTouchListener(new NewNoteOnTouchListener());
mDispatch = false;
@ -307,7 +340,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
public void onItemCheckedStateChanged(ActionMode mode, int position, long id,
boolean checked) {
boolean checked) {
mNotesListAdapter.setCheckedItem(position, checked);
updateMenu();
}
@ -325,14 +358,14 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
builder.setTitle(getString(R.string.alert_title_delete));
builder.setIcon(android.R.drawable.ic_dialog_alert);
builder.setMessage(getString(R.string.alert_message_delete_notes,
mNotesListAdapter.getSelectedCount()));
mNotesListAdapter.getSelectedCount()));
builder.setPositiveButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
batchDelete();
}
});
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
batchDelete();
}
});
builder.setNegativeButton(android.R.string.cancel, null);
builder.show();
break;
@ -395,6 +428,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
break;
}
default: {
//错误返回
if (mDispatch) {
event.setLocation(event.getX(), mDispatchY);
mDispatch = false;
@ -413,7 +447,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
: NORMAL_SELECTION;
mBackgroundQueryHandler.startQuery(FOLDER_NOTE_LIST_QUERY_TOKEN, null,
Notes.CONTENT_NOTE_URI, NoteItemData.PROJECTION, selection, new String[] {
String.valueOf(mCurrentFolderId)
String.valueOf(mCurrentFolderId)
}, NoteColumns.TYPE + " DESC," + NoteColumns.MODIFIED_DATE + " DESC");
}
@ -463,9 +497,16 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
private void createNewNote() {
//5、Intent(Context packageContext, Class<?> cls) 传入组件的构造函数,也就是上文提到的
//http://t.csdnimg.cn/WRUrZ
Intent intent = new Intent(this, NoteEditActivity.class);
//Intent intent = new Intent(MainActivity.this,SecondActivity.class);
//1.setAction()表明我们想要启动能够响应设置的这个action的活动并在清单文件AndroidManifest.xml中设置action属性。如:(打开一个拨号界面)
intent.setAction(Intent.ACTION_INSERT_OR_EDIT);
//4.putExtra()把要传递的数据暂存在Intent中启动了另一个活动后只需要把这些数据再从Intent中取出就可以了。
intent.putExtra(Notes.INTENT_EXTRA_FOLDER_ID, mCurrentFolderId);
//它主要是用于在两个Activity之间交换数据的。
//http://t.csdnimg.cn/MbmC0
this.startActivityForResult(intent, REQUEST_CODE_NEW_NODE);
}
@ -557,6 +598,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
mTitleBar.setVisibility(View.VISIBLE);
}
//setOnClickListener调用
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_new_note:
@ -624,7 +666,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
values.put(NoteColumns.LOCAL_MODIFIED, 1);
mContentResolver.update(Notes.CONTENT_NOTE_URI, values, NoteColumns.ID
+ "=?", new String[] {
String.valueOf(mFocusNoteDataItem.getId())
String.valueOf(mFocusNoteDataItem.getId())
});
}
} else if (!TextUtils.isEmpty(name)) {
@ -700,7 +742,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
}
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {
appWidgetId
appWidgetId
});
sendBroadcast(intent);
@ -775,12 +817,80 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
} else {
Log.e(TAG, "Wrong state:" + mState);
}
if(secret_mode == 1)
menu.findItem(R.id.menu_secret).setVisible(false);
else
menu.findItem(R.id.menu_quit_secret).setVisible(false);
return true;
}
public static void change_secret_mode()
{
Log.e("leo","TRUE");
if(secret_mode==-1||secret_mode==0){
// SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(NotesListActivity.this);
settings.edit().putBoolean(NOW_MODE,true).apply();
settings.edit().putBoolean(SECRET,true).apply();
secret_mode=1;
LoginActivity.change_secret();
}else{
// SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(NotesListActivity.this);
settings.edit().putBoolean(NOW_MODE,false).apply();
secret_mode=0;
LoginActivity.change_secret();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_secret:{
AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this);
dialog.setTitle("重要提醒");
dialog.setMessage("您确认进入私密模式吗?");
dialog.setCancelable(false);
dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(NotesListActivity.this);
if (!settings.getBoolean(SECRET, false)) {
Log.e("leo","FALSE1");
Intent intent=new Intent(NotesListActivity.this, Register.class);
startActivity(intent);
}
else{
Toast.makeText(NotesListActivity.this,"您已进入私密模式",Toast.LENGTH_SHORT).show();
change_secret_mode();
}
}
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which){}
});
dialog.show();
// Toast.makeText(this,"您已进入私密模式",Toast.LENGTH_SHORT).show();
break;
}
case R.id.menu_quit_secret:{ //退出私密模式
AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this);
dialog.setTitle("重要提醒");
dialog.setMessage("您确认退出私密模式吗?");
dialog.setCancelable(false);
dialog.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(NotesListActivity.this,"您已退出私密模式",Toast.LENGTH_SHORT).show();
change_secret_mode();
}
});
dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which){}
});
dialog.show();
break;
}
case R.id.menu_new_folder: {
showCreateOrModifyFolderDialog(true);
break;
@ -920,7 +1030,7 @@ public class NotesListActivity extends Activity implements OnClickListener, OnIt
private void startQueryDestinationFolders() {
String selection = NoteColumns.TYPE + "=? AND " + NoteColumns.PARENT_ID + "<>? AND " + NoteColumns.ID + "<>?";
selection = (mState == ListEditState.NOTE_LIST) ? selection:
"(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")";
"(" + selection + ") OR (" + NoteColumns.ID + "=" + Notes.ID_ROOT_FOLDER + ")";
mBackgroundQueryHandler.startQuery(FOLDER_LIST_QUERY_TOKEN,
null,

@ -0,0 +1,120 @@
package net.micode.notes.video;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.VideoView;
import androidx.annotation.Nullable;
import net.micode.notes.Login.LoginActivity;
import net.micode.notes.Login.Register;
import net.micode.notes.R;
import net.micode.notes.ui.NotesListActivity;
import java.sql.Timestamp;
import java.util.Timer;
import java.util.TimerTask;
public class videoactivity extends Activity {
private VideoView video;
private AudioManager _AudioManager;
private Timer timer;
private int times = 20;
private Button tiaoguo;
private boolean ok_finish=false;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.videos);
AlertDialog.Builder dialog = new AlertDialog.Builder(videoactivity.this);
dialog.setTitle("多次错误");
dialog.setMessage("该罚");
dialog.show();
tiaoguo=(Button)findViewById(R.id.tiaoguo);
_AudioManager=(AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
_AudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0,AudioManager.FLAG_PLAY_SOUND);
video=findViewById(R.id.videoview);
String url="android.resource://"+getPackageName()+"/"+R.raw.banana;
// String url = "https://v2.cri.cn/M00/01/FB/rBABDWSumcCAQr0FAboZIp7NOEw200.mp4";
Uri uri=Uri.parse(url);
video.setVideoURI(uri);
// video.setVideoPath(url);
video.requestFocus();
video.start();
video.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
Intent intent = new Intent(videoactivity.this, Register.class);
Register.re_register=1;
// TextView title = (TextView) findViewById(R.id.title_register);
// title.setText("修改注册信息");
startActivity(intent);
finish();
}
});
initEvent();
}
private void initEvent(){
timer=new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
tiaoguo.post(new Runnable() {
@Override
public void run() {
if(times<0){
ok_finish=true;
tiaoguo.setText("跳过");
timer.cancel();
}else{
tiaoguo.setText(Integer.toString(times--));
}
}
});
}
},0,1000);
tiaoguo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(ok_finish) {
finish();
}
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
return true;
// return super.onKeyDown(keyCode, event);
}
@Override
protected void onDestroy() {
super.onDestroy();
if(timer!=null){
timer.cancel();
}
}
}

@ -0,0 +1,42 @@
package net.micode.notes.voicedemo;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
import com.iflytek.cloud.Setting;
import com.iflytek.cloud.SpeechUtility;
import net.micode.notes.R;
public class SpeechApp extends Application {
public static final String PRIVACY_KEY = "privacy_key";
@Override
public void onCreate() {
super.onCreate();
}
private static boolean mscInitialize = false;
public static void initializeMsc(Context context){
if (mscInitialize) return;
// 应用程序入口处调用避免手机内存过小杀死后台进程后通过历史intent进入Activity造成SpeechUtility对象为null
// 如在Application中调用初始化需要在Mainifest中注册该Applicaiton
// 注意此接口在非主进程调用会返回null对象如需在非主进程使用语音功能请增加参数SpeechConstant.FORCE_LOGIN+"=true"
// 参数间使用半角“,”分隔。
// 设置你申请的应用appid,请勿在'='与appid之间添加空格及空转义符
// 注意: appid 必须和下载的SDK保持一致否则会出现10407错误
SpeechUtility.createUtility(context, "appid=87ccc405");
// 以下语句用于设置日志开关默认开启设置成false时关闭语音云SDK日志打印
Setting.setShowLog(true);
mscInitialize = true;
}
}

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-2h2v2zM13,13h-2L11,7h2v6z"/>
</vector>

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M21,10h-8.35C11.83,7.67 9.61,6 7,6c-3.31,0 -6,2.69 -6,6s2.69,6 6,6c2.61,0 4.83,-1.67 5.65,-4H13l2,2l2,-2l2,2l4,-4.04L21,10zM7,15c-1.65,0 -3,-1.35 -3,-3c0,-1.65 1.35,-3 3,-3s3,1.35 3,3C10,13.65 8.65,15 7,15z"/>
</vector>

@ -0,0 +1,5 @@
<vector android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M12,12c2.21,0 4,-1.79 4,-4s-1.79,-4 -4,-4 -4,1.79 -4,4 1.79,4 4,4zM12,14c-2.67,0 -8,1.34 -8,4v2h16v-2c0,-2.66 -5.33,-4 -8,-4z"/>
</vector>

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical">
<ImageView
android:id="@+id/ifly_mnotice_image_container"
android:layout_width="match_parent"
android:scaleType="fitXY"
android:layout_height="match_parent"/>
</RelativeLayout>

@ -76,12 +76,13 @@
<ScrollView
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_height="772dp"
android:layout_gravity="left|top"
android:layout_weight="1"
android:scrollbars="none"
android:fadingEdgeLength="0dip"
android:overScrollMode="never"
android:layout_gravity="left|top"
android:fadingEdgeLength="0dip">
android:scrollbars="none"
>
<LinearLayout
android:layout_width="fill_parent"
@ -91,24 +92,43 @@
android:id="@+id/note_edit_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="left|top"
android:background="@null"
android:autoLink="all"
android:background="@null"
android:gravity="left|top"
android:lineSpacingMultiplier="1.2"
android:linksClickable="false"
android:minLines="12"
android:textAppearance="@style/TextAppearancePrimaryItem"
android:lineSpacingMultiplier="1.2" />
android:textAppearance="@style/TextAppearancePrimaryItem" />
<LinearLayout
android:id="@+id/note_edit_list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="-10dip"
android:orientation="vertical"
android:visibility="gone" />
</LinearLayout>
</ScrollView>
<EditText
android:id="@+id/iat_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FFFFFF"
android:text="语音识别内容"
android:textSize="15dp">
</EditText>
<Button
android:id="@+id/yuyin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="语音识别" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="7dip"

@ -43,9 +43,9 @@
android:layout_height="0dip"
android:layout_weight="1"
android:cacheColorHint="@null"
android:listSelector="@android:color/transparent"
android:divider="@null"
android:fadingEdge="@null" />
android:fadingEdge="@null"
android:listSelector="@android:color/transparent" />
</LinearLayout>
<Button

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:orientation="vertical">
<EditText
android:layout_marginTop="200dp"
android:id="@+id/account"
android:layout_width="280dp"
android:layout_height="61dp"
android:layout_gravity="center_horizontal"
android:drawableLeft="@drawable/baseline_person_24"
android:hint="用户名">
</EditText>
<EditText
android:id="@+id/password"
android:layout_width="280dp"
android:layout_height="61dp"
android:layout_gravity="center_horizontal"
android:drawableLeft="@drawable/baseline_key_24"
android:hint="密码"
android:inputType="textPassword">
</EditText>
<!-- <LinearLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="60dp"-->
<!-- android:orientation="horizontal">-->
<Button
android:layout_marginTop="50dp"
android:id="@+id/login"
android:layout_gravity="center_horizontal"
android:layout_width="99dp"
android:layout_height="50dp"
android:text="登录"></Button>
<!-- </LinearLayout>-->
</LinearLayout>

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/title_register"
android:layout_marginTop="100dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="注册"
android:textSize="30dp"
android:gravity="center" />
<LinearLayout
android:layout_marginTop="100dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/register_username"
android:layout_gravity="center"
android:lines="1"
android:imeOptions="actionNext"
android:paddingLeft="40dp"
android:gravity="left|center"
android:layout_width="200dp"
android:layout_height="45dp"
android:hint="用户名"
android:textSize="15sp" />
<EditText
android:id="@+id/register_password"
android:layout_marginTop="20dp"
android:layout_gravity="center"
android:lines="1"
android:imeOptions="actionNext"
android:paddingLeft="40dp"
android:gravity="left|center"
android:layout_width="200dp"
android:layout_height="45dp"
android:hint="密码"
android:textSize="15sp"/>
<Button
android:id="@+id/register2_button"
android:layout_gravity="center"
android:layout_marginTop="20dp"
android:text="注册"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:textSize="18sp"
android:gravity="center" />
</LinearLayout>
</LinearLayout>

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/tiaoguo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:background="#00000000"
android:layout_marginTop="23dp"
android:layout_marginRight="26dp"
android:text="跳过"
android:textColor="#ff0000">
</Button>
<VideoView
android:id="@+id/videoview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</VideoView>
</RelativeLayout>

@ -36,4 +36,13 @@
<item
android:id="@+id/menu_search"
android:title="@string/menu_search"/>
<item
android:id="@+id/menu_secret"
android:title="@string/menu_secret"/>
<item
android:id="@+id/menu_quit_secret"
android:title="@string/menu_quit_secret"/>
</menu>

@ -17,6 +17,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- 请替换成在语音云官网申请的appid -->
<string name="app_id">87ccc405</string>
<string name="menu_secret">私密模式</string>
<string name="menu_quit_secret">退出私密模式</string>
<string name="app_name">便签</string>
<string name="app_widget2x2">便签2x2</string>
<string name="app_widget4x4">便签4x4</string>

@ -17,6 +17,9 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_id">87ccc405</string>
<string name="menu_secret">私密模式</string>
<string name="menu_quit_secret">退出私密模式</string>
<string name="app_name">便簽</string>
<string name="app_widget2x2">便簽2x2</string>
<string name="app_widget4x4">便簽4x4</string>

@ -17,6 +17,9 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_id">87ccc405</string>
<string name="menu_secret">secret model</string>
<string name="menu_quit_secret">quit secret model</string>
<string name="app_name">Notes</string>
<string name="app_widget2x2">Notes 2x2</string>
<string name="app_widget4x4">Notes 4x4</string>

@ -63,7 +63,7 @@
</style>
<style name="NoteActionBarStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:displayOptions" />
<item name="android:visibility">gone</item>
<!-- <item name="android:displayOptions" />-->
<item name="android:visibility">visible</item>
</style>
</resources>

Binary file not shown.
Loading…
Cancel
Save