[Q] 100 SMS/hour limit removing code issues - Android Software/Hacking General [Developers Only]

A friend of mine and I are in the process of writing an app that will need to send more than 100 SMS messages per hour, in most cases. The purpose of the application would be to allow the user to spam a friend (or enemy) for a prank or similar action. It would be nice to include an option for rooted users to remove the 100 SMS per hour limit present in android. I have written a method that should be able to do this, but Can't get it to work. After running the method, it doesn't seem to change the values in the database.
LimitRemover.java:
Code:
-------------------------------------------------------------------------------------------*/
/*Copyright 2010 Brady O'Brien. All rights reserved. */
/* */
/* Redistribution and use in source and binary forms, with or without modification, are */
/*permitted provided that the following conditions are met: */
/* */
/* 1. Redistributions of source code must retain the above copyright notice, this list of */
/* conditions and the following disclaimer. */
/* */
/* 2. Redistributions in binary form must reproduce the above copyright notice, this list */
/* of conditions and the following disclaimer in the documentation and/or other materials */
/* provided with the distribution. */
/* */
/*THIS SOFTWARE IS PROVIDED BY BRADY O'BRIEN ``AS IS'' AND ANY EXPRESS OR IMPLIED */
/*WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND */
/*FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BRADY O'BRIEN OR */
/*CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR */
/*CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR */
/*SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON */
/*ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
/*NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF */
/*ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
/* */
/*The views and conclusions contained in the software and documentation are those of the */
/*authors and should not be interpreted as representing official policies, either expressed */
/*or implied, of Brady O'Brien. */
/*----------------------------------------------------------------------------------------------*/
package com.spamtron.evtron.mayhallobrien;
import java.io.DataOutputStream;
import java.io.IOException;
import android.util.Log;
public class LimitRemover {
public static void removeLimit()
{
try
{
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(p.getOutputStream());
String SQL = "INSERT INTO gservices (name, value) VALUES ('sms_outgoing_check_max_count', 999999999);\n"
+"INSERT INTO secure (name, value) VALUES ('sms_outgoing_check_max_count', 999999999);\n"
+"INSERT INTO gservices (name, value) VALUES ('sms_outgoing_check_interval_ms', 0);\n"
+"INSERT INTO secure (name, value) VALUES ('sms_outgoing_check_interval_ms', 0);\n"
+".quit";
os.writeBytes("sqlite3 /data/data/com.android.providers.settings/databases/settings.db \n");
os.writeBytes(SQL);
os.writeBytes("exit\n");
os.flush();
}
catch (IOException e)
{
Log.e("Error in removeLimit",e.getMessage());
}
}
}

Looks right to me. I was able to follow these manual steps to get rid of the limit on my 2.2 LG Optimus phone: http://dylantaylor.wordpress.com/2010/10/19/closer-to-a-proper-froyo-limit-removal-fix/
Is it possible you've inserted multiple rows with the same key? Maybe delete rows with those keys before inserting?

Did you ever get this to work?

Related

[Q] How to modify kernel source?

Hi all
I'm interested in creating my own ROM and kernel for my GT2 and I downloaded source codes from Samsung open source.
I want to underclock my device so that I have to modify some codes of the kernel.
I figured out the frequency table is coded in arch/arm/mach-omap2/opp4xxx_data.c
Code:
static struct omap_opp_def __initdata omap443x_opp_def_list[] = {
/* MPU OPP1 - OPP50 */
OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true,
300000000, OMAP4430_VDD_MPU_OPP50_UV),
/* MPU OPP2 - OPP100 */
OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true,
600000000, OMAP4430_VDD_MPU_OPP100_UV),
/* MPU OPP3 - OPP-Turbo */
OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true,
800000000, OMAP4430_VDD_MPU_OPPTURBO_UV),
/* MPU OPP4 - OPP-SB */
OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true,
1008000000, OMAP4430_VDD_MPU_OPPNITRO_UV),
I'm almost sure that the numbers at each line represent a CPU frequency,
and the last parameters are macro defined at the beginning of the code:
Code:
/*
* Structures containing OMAP4430 voltage supported and various
* voltage dependent data for each VDD.
*/
#define OMAP4430_VDD_MPU_OPP50_UV 1025000
#define OMAP4430_VDD_MPU_OPP100_UV 1200000
#define OMAP4430_VDD_MPU_OPPTURBO_UV 1313000
#define OMAP4430_VDD_MPU_OPPNITRO_UV 1374000
#define OMAP4430_VDD_MPU_OPPNITROSB_UV 1375000
So, I guess an argument for a frequency should be:
Code:
OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true, [U][b]Frequency in Hz[/b][/U], [U][b]Voltage[/b][/U]),
And the frequency and voltage should match each other...
Also, I want to add some governors to the kernel, I think I need to do the followings:
1. Get the source of the governors
2. Modify Makefile
3. Add the governors in Kconfig
I want to know if the above is correct... Thanks a lot:victory:
Ivan

Add codes to mupen64plus

All you need is es file Explorer
Find it under android/ data / paulscode.android.mupen64plus.free from there you'll find the files you can edit with es file Explorer
And just so there's no confusion // * Mupen64plus - mupen64plus.cht *
// * Mupen64Plus homepage: http://code.google.com/p/mupen64plus/ *
// * Copyright (C) 2008 Gent *
// * *
// * 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. *
// * *
Sent from my awesome Galaxy Tab 3 8.0 SMT 310
Bump
Sent from my awesome Galaxy Tab 3 8.0 SMT 310

[GUIDE] How to control mod from other app

Hello Guys I am Back with guide.Generally i am going to show how to control mod from other app i think you have seen in rom etc when we click show toggle it show toggle but when we click on disable toggle it disable toggle what is that how to do that let gonna do.Basically you should have basic android programming knowledge and how to make java into smali how to put it into the apk and debug.This guide i created because of @ShadeSK request so i created otherwise i wont . Okay Lets start.
Instruction
First of all create android project in your ide . Then make class which extends PreferenceActivity then make xml name setting then addPreferencesFromResource(id_to_xml) then make checkbox in the xml then populate the checkbox from the java class you can populate by
HTML:
CheckBoxPreference mClockColor = (ColorPickerPreference) findPreference(" in the xml which you have declared as key");
then make class FireSender and add content
HTML:
package com.androidfire;
import android.content.Context;
import android.content.Intent;
public class FireSender {
public static void mailTo(Context c,String id,boolean value) {
Intent intent = new Intent();
intent.setAction(id);
intent.putExtra(id,value);
c.sendBroadcast(intent);
}
}
then make another class named FireObserver add content
HTML:
/**
* AndroidFire 2015
* All files of AndroidFire are free to use reproduce utilise
* fork re use change package name and class name as you want
* (( but )) please give credit
*/
package com.androidfire;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import static android.content.SharedPreferences.*;
public class FireObserver {
/**
* Use this class as brain don't touch any file maybe FC or etc
*/
// Context must be passed other wise cant do anything
private Context mContext;
// Specific url for class
private String mSPECIFIC_URL;
// Required to get data from this
public BroadcastReceiver mBroadcastReceiver;
// Need to save data so we need it
public SharedPreferences mSPHelper;
// This is it status of that thing
private boolean mStatus;
/**
* Passed these parameter to this class otherwise it will wont work
* [user=955119]@param[/user] context set specific context
* [user=955119]@param[/user] Specific_url this means you have to set id like com.bla (This is most important thing
* you have to add unique for one mod)
* [user=955119]@param[/user] observerListener default value is this and implement it on the class
*/
public FireObserver(Context context,String Specific_url, final ObserverListener observerListener) {
setContext(context);
setSPECIFIC_URL(Specific_url);
mSPHelper = getContext().getSharedPreferences("AndroidFire",Context.MODE_PRIVATE);
mStatus = mSPHelper.getBoolean(Specific_url, true);
mSPHelper.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() {
[user=439709]@override[/user]
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
mStatus = sharedPreferences.getBoolean(getSPECIFIC_URL(), true);
if (mStatus) {
observerListener.onEnabled();
}
else if (!mStatus) {
observerListener.onDisabled();
}
}
});
if (mStatus) {
observerListener.onEnabled();
}
else if (!mStatus) {
observerListener.onDisabled();
}
mBroadcastReceiver = new BroadcastReceiver() {
[user=439709]@override[/user]
public void onReceive(Context context, Intent intent) {
boolean status = intent.getBooleanExtra(getSPECIFIC_URL(),true);
mStatus = status;
SharedPreferences.Editor ed = mSPHelper.edit();
ed.putBoolean(getSPECIFIC_URL(),status);
ed.apply();
}
};
context.registerReceiver(mBroadcastReceiver,new IntentFilter(Specific_url));
}
public Context getContext() {
return mContext;
}
public void setContext(Context mContext) {
this.mContext = mContext;
}
public String getSPECIFIC_URL() {
return mSPECIFIC_URL;
}
public void setSPECIFIC_URL(String mSPECIFIC_URL) {
this.mSPECIFIC_URL = mSPECIFIC_URL;
}
public interface ObserverListener {
public void onEnabled();
public void onDisabled();
}
}
then in the mod class that you have prepare go to that class as in this i have TestText
then declare FireObserver as
HTML:
FireObserver fireObserver = new FireObserver(getContext(),"com.SimpleText",this);
getContext(); means you have to pass context
then com.SimpleText means the url you have to register according mod like com.androidfire.CLOCK_ON_STATUSBAR etc
this means you have to implement FireObserver.ObserverListener into class on the method onEnabled declare that what you want to do if the it is checked on the other hand onDisbaled is opposite in case of my i want change the visibility.
then go the main class where you have extend PreferanceActivity then
add
HTML:
if (Cb.isChecked()) {
FireSender.mailTo(getApplicationContext(),"com.SimpleText",true);
}
else {
FireSender.mailTo(getApplicationContext(),"com.SimpleText",false);
}
then compile it and attached to pulled out three smali mod one , FireSender and FireObserver then attached to the apk where you want to add then install apk that you have made and run the app you have modify and check does it work if does not work give me the source i will find your error
AndroidFire said:
Hello Guys I am Back with guide.Generally i am going to show how to control mod from other app i think you have seen in rom etc when we click show toggle it show toggle but when we click on disable toggle it disable toggle what is that how to do that let gonna do.Basically you should have basic android programming knowledge and how to make java into smali how to put it into the apk and debug.This guide i created because of @ShadeSK request so i created otherwise i wont . Okay Lets start.
Instruction
First of all create android project in your ide . Then make class which extends PreferenceActivity then make xml name setting then addPreferencesFromResource(id_to_xml) then make checkbox in the xml then populate the checkbox from the java class you can populate by
HTML:
CheckBoxPreference mClockColor = (ColorPickerPreference) findPreference(" in the xml which you have declared as key");
then make class FireSender and add content
HTML:
package com.androidfire;
import android.content.Context;
import android.content.Intent;
public class FireSender {
public static void mailTo(Context c,String id,boolean value) {
Intent intent = new Intent();
intent.setAction(id);
intent.putExtra(id,value);
c.sendBroadcast(intent);
}
}
then make another class named FireObserver add content
HTML:
/**
* AndroidFire 2015
* All files of AndroidFire are free to use reproduce utilise
* fork re use change package name and class name as you want
* (( but )) please give credit
*/
package com.androidfire;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import static android.content.SharedPreferences.*;
public class FireObserver {
/**
* Use this class as brain don't touch any file maybe FC or etc
*/
// Context must be passed other wise cant do anything
private Context mContext;
// Specific url for class
private String mSPECIFIC_URL;
// Required to get data from this
public BroadcastReceiver mBroadcastReceiver;
// Need to save data so we need it
public SharedPreferences mSPHelper;
// This is it status of that thing
private boolean mStatus;
/**
* Passed these parameter to this class otherwise it will wont work
* [user=955119]@param[/user] context set specific context
* [user=955119]@param[/user] Specific_url this means you have to set id like com.bla (This is most important thing
* you have to add unique for one mod)
* [user=955119]@param[/user] observerListener default value is this and implement it on the class
*/
public FireObserver(Context context,String Specific_url, final ObserverListener observerListener) {
setContext(context);
setSPECIFIC_URL(Specific_url);
mSPHelper = getContext().getSharedPreferences("AndroidFire",Context.MODE_PRIVATE);
mStatus = mSPHelper.getBoolean(Specific_url, true);
mSPHelper.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() {
[user=439709]@override[/user]
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
mStatus = sharedPreferences.getBoolean(getSPECIFIC_URL(), true);
if (mStatus) {
observerListener.onEnabled();
}
else if (!mStatus) {
observerListener.onDisabled();
}
}
});
if (mStatus) {
observerListener.onEnabled();
}
else if (!mStatus) {
observerListener.onDisabled();
}
mBroadcastReceiver = new BroadcastReceiver() {
[user=439709]@override[/user]
public void onReceive(Context context, Intent intent) {
boolean status = intent.getBooleanExtra(getSPECIFIC_URL(),true);
mStatus = status;
SharedPreferences.Editor ed = mSPHelper.edit();
ed.putBoolean(getSPECIFIC_URL(),status);
ed.apply();
}
};
context.registerReceiver(mBroadcastReceiver,new IntentFilter(Specific_url));
}
public Context getContext() {
return mContext;
}
public void setContext(Context mContext) {
this.mContext = mContext;
}
public String getSPECIFIC_URL() {
return mSPECIFIC_URL;
}
public void setSPECIFIC_URL(String mSPECIFIC_URL) {
this.mSPECIFIC_URL = mSPECIFIC_URL;
}
public interface ObserverListener {
public void onEnabled();
public void onDisabled();
}
}
then in the mod class that you have prepare go to that class as in this i have TestText
then declare FireObserver as
HTML:
FireObserver fireObserver = new FireObserver(getContext(),"com.SimpleText",this);
getContext(); means you have to pass context
then com.SimpleText means the url you have to register according mod like com.androidfire.CLOCK_ON_STATUSBAR etc
this means you have to implement FireObserver.ObserverListener into class on the method onEnabled declare that what you want to do if the it is checked on the other hand onDisbaled is opposite in case of my i want change the visibility.
then go the main class where you have extend PreferanceActivity then
add
HTML:
if (Cb.isChecked()) {
FireSender.mailTo(getApplicationContext(),"com.SimpleText",true);
}
else {
FireSender.mailTo(getApplicationContext(),"com.SimpleText",false);
}
then compile it and attached to pulled out three smali mod one , FireSender and FireObserver then attached to the apk where you want to add then install apk that you have made and run the app you have modify and check does it work if does not work give me the source i will find your error
Click to expand...
Click to collapse
No words Bro Thanks alot

Editing "Regulatory Information" to display a Japanese 技適マーク (Certification mark)

Editing "Regulatory Information" to display a Japanese 技適マーク (Certification mark)
Hello XDA forums,
I'm fairly new to Android, and did a lot of googling and searching of the forums, but couldn't find an answer.
In short, due to old outdated laws in Japan (please search for 技適マーク as i can't post outside links yet...)
any wireless device not displaying this mark is not allowed to have sim cards or do any sort of wireless transmission.
Normally not a problem, but my Asus Zenfone 2 doesn't have the mark, even though Zenfone 2 is cleared by their equivalent of the FCC, and phones sold in Japan have the mark.
I'm messing around with build.prop editor, and attemping to locate where the damn pictures are to see if i can just change em out, or edit a line or two to display that mark.
Anyone want to help me out?
i'd be very grateful!
Code:
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.settings;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Gravity;
import android.widget.TextView;
/**
* {@link Activity} that displays regulatory information for the "Regulatory information"
* preference item, and when "*#07#" is dialed on the Phone keypad. To enable this feature,
* set the "config_show_regulatory_info" boolean to true in a device overlay resource, and in the
* same overlay, either add a drawable named "regulatory_info.png" containing a graphical version
* of the required regulatory info, or add a string resource named "regulatory_info_text" with
* an HTML version of the required information (text will be centered in the dialog).
*/
public class RegulatoryInfoDisplayActivity extends Activity implements
DialogInterface.OnDismissListener {
/**
* Display the regulatory info graphic in a dialog window.
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Resources resources = getResources();
if (!resources.getBoolean(R.bool.config_show_regulatory_info)) {
finish(); // no regulatory info to display for this device
}
AlertDialog.Builder builder = new AlertDialog.Builder(this)
.setTitle(R.string.regulatory_information)
.setOnDismissListener(this);
boolean regulatoryInfoDrawableExists;
try {
Drawable d = resources.getDrawable(R.drawable.regulatory_info);
// set to false if the width or height is <= 2
// (missing PNG can return an empty 2x2 pixel Drawable)
regulatoryInfoDrawableExists = (d.getIntrinsicWidth() > 2
&& d.getIntrinsicHeight() > 2);
} catch (Resources.NotFoundException ignored) {
regulatoryInfoDrawableExists = false;
}
CharSequence regulatoryText = resources.getText(R.string.regulatory_info_text);
if (regulatoryInfoDrawableExists) {
builder.setView(getLayoutInflater().inflate(R.layout.regulatory_info, null));
builder.show();
} else if (regulatoryText.length() > 0) {
builder.setMessage(regulatoryText);
AlertDialog dialog = builder.show();
// we have to show the dialog first, or the setGravity() call will throw a NPE
TextView messageText = (TextView) dialog.findViewById(android.R.id.message);
messageText.setGravity(Gravity.CENTER);
} else {
// neither drawable nor text resource exists, finish activity
finish();
}
}
@Override
public void onDismiss(DialogInterface dialog) {
finish(); // close the activity
}
}
this looks close. it seems to display the "regulatory information"
i wonder if i mess around with it, i can change what it displays?

[App][OpenSource] SMSGear - SMS Application for Gear S3

Hi,
I had the chance to try out the Samsung Gear S3 for few days. While this watch is amazing, probably my favorite as today, it sadly has no SMS Application built-in (For Non-Samsung phones), and no SMS Applications on the Samsung Gear Store nether.
I made the project open source, as there is still rooms for improvements.
Product page : https://gitlab.com/Jamesst20/SMSGear
GitLab :
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
This is awesome,
Hope it gains traction would love to be able to use this watch with textra
Sparacis said:
This is awesome,
Hope it gains traction would love to be able to use this watch with textra
Click to expand...
Click to collapse
Thank you
The application works fine with Textra. Also, Textra notifications works pretty well out of the box with the watch
jamesst20 said:
Thank you
The application works fine with Textra. Also, Textra notifications works pretty well out of the box with the watch
Click to expand...
Click to collapse
It does but not being able to start a conversation via textra from the watch is annoying
jamesst20 said:
Hi,
I had the chance to try out the Samsung Gear S3 for few days. While this watch is amazing, probably my favorite as today, it sadly has no SMS Application built-in (For Non-Samsung phones), and no SMS Applications on the Samsung Gear Store nether.
I made the project open source, as there is still rooms for improvements.
Product page : https://gitlab.com/Jamesst20/SMSGear
GitLab :
Click to expand...
Click to collapse
About circle-helper, this might help https://forum.xda-developers.com/showpost.php?p=70868904&postcount=5, also i haven't run your code yet, why do you need a rotarydetent listener? Snaplist should handle those events already.
10urshin said:
About circle-helper, this might help https://forum.xda-developers.com/showpost.php?p=70868904&postcount=5, also i haven't run your code yet, why do you need a rotarydetent listener? Snaplist should handle those events already.
Click to expand...
Click to collapse
Thank you for the link, I was the one posting the solution on the thread you posted His implementation is different than mine, however, I would be very suprised that it makes a difference for the known issue, as the SnapLists are recreated on the refresh since there is a page change.
Also, the rotarydetent listener is used to scroll sms in conversations (but not conversations list). The reason why is because the SnapList would scroll 1 element per element, making big messages unreadable. Also, it would make a weird scrolling feeling since it's not all list item that have the same height.
It was my first Gear S3/Tizen project ever, maybe you have some knowledge to share
Edit :
The Samsung Documentation for Wearable is very very incomplete. Do you know if there are methods such as AddItem/RemoveItem, etc on the ListView ? https://developer.tizen.org/ko/deve...ml/ui_fw_api/wearable/widgets/widget_list.htm
jamesst20 said:
Thank you for the link, I was the one posting the solution on the thread you posted His implementation is different than mine, however, I would be very suprised that it makes a difference for the known issue, as the SnapLists are recreated on the refresh since there is a page change.
Also, the rotarydetent listener is used to scroll sms in conversations (but not conversations list). The reason why is because the SnapList would scroll 1 element per element, making big messages unreadable. Also, it would make a weird scrolling feeling since it's not all list item that have the same height.
It was my first Gear S3/Tizen project ever, maybe you have some knowledge to share
Edit :
The Samsung Documentation for Wearable is very very incomplete. Do you know if there are methods such as AddItem/RemoveItem, etc on the ListView ? https://developer.tizen.org/ko/deve...ml/ui_fw_api/wearable/widgets/widget_list.htm
Click to expand...
Click to collapse
Oh, sorry didn't realize it was you Anyway i have found the problem, snaplist disapears not because circle-helper is not recreating the snaplist on pagebeforeshow but because onReceiveCallback gets called after pagebeforeshow even more than once, so i swapped your circle-helper with mine and fired up updatesnaplist event at the end of onReceiveCallback. Sent the merge request.
And yes it is very incomplete and about the ListView, it has no js methods, none public at least. Here is the source for it.
Code:
/*global window, define */
/*
* Copyright (c) 2015 Samsung Electronics Co., Ltd
*
* Licensed under the Flora License, Version 1.1 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://floralicense.org/license/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*jslint nomen: true */
/**
* # Listview Widget
* Shows a list view.
*
* The list widget is used to display, for example, navigation data, results, and data entries. The following table describes the supported list classes.
*
* ## Default selectors
*
* Default selector for listview widget is class *ui-listview*.
*
* To add a list widget to the application, use the following code:
*
* ### List with basic items
*
* You can add a basic list widget as follows:
*
* @example
* <ul class="ui-listview">
* <li>1line</li>
* <li>2line</li>
* <li>3line</li>
* <li>4line</li>
* <li>5line</li>
* </ul>
*
* ### List with link items
*
* You can add a list widget with a link and press effect that allows the user to click each list item as follows:
*
* @example
* <ul class="ui-listview">
* <li>
* 1line
* </li>
* <li>
* 2line
* </li>
* <li>
* 3line
* </li>
* <li>
* 4line
* </li>
* <li>
* 5line
* </li>
* </ul>
*
* ## JavaScript API
*
* Listview widget hasn't JavaScript API.
*
* @class ns.widget.wearable.Listview
* @extends ns.widget.BaseWidget
*/
(function (document, ns) {
"use strict";
var BaseWidget = ns.widget.BaseWidget,
engine = ns.engine,
Listview = function () {
},
prototype = new BaseWidget();
/**
* Dictionary for listview related events.
* For listview, it is an empty object.
* @property {Object} events
* @member ns.widget.wearable.Listview
* @static
*/
Listview.events = {};
/**
* Build Listview
* @method _build
* @param {HTMLElement} element
* @return {HTMLElement}
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._build = function (element) {
return element;
};
prototype._init = function (element) {
return element;
};
prototype._bindEvents = function (element) {
return element;
};
/**
* Refresh structure
* @method _refresh
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._refresh = function () {
return null;
};
/**
* Destroy widget
* @method _destroy
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._destroy = function () {
return null;
};
Listview.prototype = prototype;
ns.widget.wearable.Listview = Listview;
engine.defineWidget(
"Listview",
".ui-listview",
[],
Listview,
"wearable"
);
}(window.document, ns));
10urshin said:
Oh, sorry didn't realize it was you Anyway i have found the problem, snaplist disapears not because circle-helper is not recreating the snaplist on pagebeforeshow but because onReceiveCallback gets called after pagebeforeshow even more than once, so i swapped your circle-helper with mine and fired up updatesnaplist event at the end of onReceiveCallback. Sent the merge request.
And yes it is very incomplete and about the ListView, it has no js methods, none public at least. Here is the source for it.
Code:
/*global window, define */
/*
* Copyright (c) 2015 Samsung Electronics Co., Ltd
*
* Licensed under the Flora License, Version 1.1 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://floralicense.org/license/
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*jslint nomen: true */
/**
* # Listview Widget
* Shows a list view.
*
* The list widget is used to display, for example, navigation data, results, and data entries. The following table describes the supported list classes.
*
* ## Default selectors
*
* Default selector for listview widget is class *ui-listview*.
*
* To add a list widget to the application, use the following code:
*
* ### List with basic items
*
* You can add a basic list widget as follows:
*
* @example
* <ul class="ui-listview">
* <li>1line</li>
* <li>2line</li>
* <li>3line</li>
* <li>4line</li>
* <li>5line</li>
* </ul>
*
* ### List with link items
*
* You can add a list widget with a link and press effect that allows the user to click each list item as follows:
*
* @example
* <ul class="ui-listview">
* <li>
* 1line
* </li>
* <li>
* 2line
* </li>
* <li>
* 3line
* </li>
* <li>
* 4line
* </li>
* <li>
* 5line
* </li>
* </ul>
*
* ## JavaScript API
*
* Listview widget hasn't JavaScript API.
*
* @class ns.widget.wearable.Listview
* @extends ns.widget.BaseWidget
*/
(function (document, ns) {
"use strict";
var BaseWidget = ns.widget.BaseWidget,
engine = ns.engine,
Listview = function () {
},
prototype = new BaseWidget();
/**
* Dictionary for listview related events.
* For listview, it is an empty object.
* @property {Object} events
* @member ns.widget.wearable.Listview
* @static
*/
Listview.events = {};
/**
* Build Listview
* @method _build
* @param {HTMLElement} element
* @return {HTMLElement}
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._build = function (element) {
return element;
};
prototype._init = function (element) {
return element;
};
prototype._bindEvents = function (element) {
return element;
};
/**
* Refresh structure
* @method _refresh
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._refresh = function () {
return null;
};
/**
* Destroy widget
* @method _destroy
* @protected
* @member ns.widget.wearable.Listview
*/
prototype._destroy = function () {
return null;
};
Listview.prototype = prototype;
ns.widget.wearable.Listview = Listview;
engine.defineWidget(
"Listview",
".ui-listview",
[],
Listview,
"wearable"
);
}(window.document, ns));
Click to expand...
Click to collapse
Thank you, I have looked at your code, edited some stuffs and merged The issue is indeed fixed
This is really great, thanks for contributing to the gear community. Very cool.
I can't contribute any programming or help in that area at all, but I'd be happy to test things once you get to the point where you have an app I can sideload via normal processes on android. I think I can get Tizen studios loaded to put the app on my watch.
Oh, and one thing I've noticed, is that when replying to a group text on the watch you can't reply to everybody in the group, it just goes back to one person. With this app allow us to get around that limitation?
Sent from my SM-G935V using Tapatalk
Redflea said:
This is really great, thanks for contributing to the gear community. Very cool.
I can't contribute any programming or help in that area at all, but I'd be happy to test things once you get to the point where you have an app I can sideload via normal processes on android. I think I can get Tizen studios loaded to put the app on my watch.
Oh, and one thing I've noticed, is that when replying to a group text on the watch you can't reply to everybody in the group, it just goes back to one person. With this app allow us to get around that limitation?
Sent from my SM-G935V using Tapatalk
Click to expand...
Click to collapse
Hi,
The process is very simple, for the Android App, you can run Android Studio, open the project and run it on your phone. It's the same process with Tizen Studio for the Gear S3
As for group conversations, I must admit I have never done that by SMS and the current implementation will not even read those kind of conversations. However, I believe this is not something very hard to implement I would just need to figure out how I would display the names in such a small screen hehe. Maybe a scrolling test.
Thanks for the suggestion, let me know how your test attempt go
If it gets popular, I could consider once the application has more features to provide, to publish it on the store
jamesst20 said:
Hi,
The process is very simple, for the Android App, you can run Android Studio, open the project and run it on your phone. It's the same process with Tizen Studio for the Gear S3
As for group conversations, I must admit I have never done that by SMS and the current implementation will not even read those kind of conversations. However, I believe this is not something very hard to implement I would just need to figure out how I would display the names in such a small screen hehe. Maybe a scrolling test.
Thanks for the suggestion, let me know how your test attempt go
If it gets popular, I could consider once the application has more features to provide, to publish it on the store
Click to expand...
Click to collapse
Thanks, installing Tizen Studio now.
Not sure - do I select a Tizen certificate or Samsung certificate (also using Tizen Studio to side-load the WatchMaker app on my watch).
As for the group SMS support, even if you could just show first names, that would work for 90% of people, I would think. Generally if you get a group SMS you're going to know the group from their first names by context pretty well...
Thanks.
Redflea said:
Thanks, installing Tizen Studio now.
Not sure - do I select a Tizen certificate or Samsung certificate (also using Tizen Studio to side-load the WatchMaker app on my watch).
As for the group SMS support, even if you could just show first names, that would work for 90% of people, I would think. Generally if you get a group SMS you're going to know the group from their first names by context pretty well...
Thanks.
Click to expand...
Click to collapse
Samsung certificate is required to deploy apps on commercial samsung devices. Tizen certificate is for non-samsung devices running tizen.
10urshin said:
Samsung certificate is required to deploy apps on commercial samsung devices. Tizen certificate is for non-samsung devices running tizen.
Click to expand...
Click to collapse
OK, thanks. almost have my Samsung distributor ceritificate done, but appears now I need my watches' DUID to complete the distributor certificate...not sure how I get that. I'm on a Win 10 laptop.
Can you point me at the process, doing some googling but things aren't clear.
Feeling like a doofus...
Redflea said:
OK, thanks. almost have my Samsung distributor ceritificate done, but appears now I need my watches' DUID to complete the distributor certificate...not sure how I get that.
Can you point me at the process, doing some googling but things aren't clear.
Feeling like a doofus...
Click to expand...
Click to collapse
It should auto copy your DUID if your watch is connected to pc using sdb by the time you are creating the distributor certificate. If it won't, Connect to your watch, open connection explorer in tizen studio, right click your watch -> properties -> others -> info there is your DUID.
https://goo.gl/photos/tL9gzzdVtk1cSvdf8
10urshin said:
It should auto copy your DUID if your watch is connected to pc using sdb by the time you are creating the distributor certificate. If it won't, Connect to your watch, open connection explorer in tizen studio, right click your watch -> properties -> others -> info there is your DUID.
https://goo.gl/photos/tL9gzzdVtk1cSvdf8
Click to expand...
Click to collapse
Yup - got it. THe watch wasn't connecting for quite a while at first, finally hooked up and fillled in the DUID in the certificate automatically. Sheesh!!
Thanks.
Redflea said:
Yup - got it. THe watch wasn't connecting for quite a while at first, finally hooked up and fillled in the DUID in the certificate automatically. Sheesh!!
Thanks.
Click to expand...
Click to collapse
Any comments on the application ?
Envoyé de mon ONEPLUS A3000 en utilisant Tapatalk
jamesst20 said:
Any comments on the application ?
Envoyé de mon ONEPLUS A3000 en utilisant Tapatalk
Click to expand...
Click to collapse
Installing now, Will provide feedback once I give it a bit of use.
Work is interfering w/life, unfortunately. Also need to install Android Studio to get to the companion app, then use Tizen to load this. Will give it a shot as soon as I can!
OK, Android studio installed and opened. Downloaded project (went here https://gitlab.com/Jamesst20/SMSGear/tree/master and selected "Download zip" option).
Unzipped to directory, opened w/Android Studio.
Now stuck - no idea what to do next. Halp...
Redflea said:
OK, Android studio installed and opened. Downloaded project (went here https://gitlab.com/Jamesst20/SMSGear/tree/master and selected "Download zip" option).
Unzipped to directory, opened w/Android Studio.
Now stuck - no idea what to do next. Halp...
Click to expand...
Click to collapse
Open the project, and run it on your phone
You need USB Debugging enabled

Categories

Resources