<commit_before># Advanced Sms Manager
AdvancedSmsManager is library for sending sms for single and two sim-card phones. it is very handy and usefull. It's two-sim mode works on Android.SDK > 21. For lower SDKs it send sms from default sim.
For using in android studio add this to your dependency:

           compile 'ir.mtajik.android:advancedsmsmanager:1.0.4'                    

    
Before using SmsHandler you had to permit user with 'Manifest.permission.SEND_SMS' and 'Manifest.permission.READ_PHONE_STATE' . 
after that simply call sendSms that have a Interface for all callbacks. smsId is a random unique auto generated Id that generated for every single sms that created by your app.
You can also set a Carrier Filter to make sure sms will sends from Specific carrier and it is optional.         

        SmsHandler smsHandler = new SmsHandler(this, "+0121212", dialogLayoutId);
        
        // you can add optional carrier filter
        smsHandler.setCarrierNameFilter("MCI");
        
        smsHandler.sendSms("dialog message", "sms body", new MySmsManager.SMSManagerCallBack() {
            @Override
            public void afterSuccessfulSMS(int smsId) {
                
            }

            @Override
            public void afterDelivered(int smsId) {

            }

            @Override
            public void afterUnSuccessfulSMS(int smsId, String message) {

            }

            @Override
            public void onCarrierNameNotMatch(int smsId, String message) {

            }
        });

If you pass a dialog layout to SmsHandler it will show your custom dialog to confirm Send sms to user, if you don't want just pass 0 as dialogLayoutId. your custom dialog should have two Android Button with these id in you layout:

    
           <Button
            android:id="@+id/send_button"
            ...
            />        
            
            <Button
            android:id="@+id/cancel_button"
            ...
            />        
           
It created with MVP architecture and Uses Dagger2 as DI container with these dependencies:

           compile 'com.google.dagger:dagger:2.7'
           annotationProcessor 'com.google.dagger:dagger-compiler:2.7'
           
So if you use dagger2 make sure that use compatible dependencies. I hope this library would be useful and wait for your comments.

this my weblog: http://www.mahditajik.ir<commit_msg>Use syntax highlighting for code chunks of README<commit_after># Advanced Sms Manager
AdvancedSmsManager is library for sending sms for single and two sim-card phones. it is very handy and usefull. It's two-sim mode works on Android.SDK > 21. For lower SDKs it send sms from default sim.
For using in android studio add this to your dependency:

```groovy
compile 'ir.mtajik.android:advancedsmsmanager:1.0.4'                    
```

Before using SmsHandler you had to permit user with 'Manifest.permission.SEND_SMS' and 'Manifest.permission.READ_PHONE_STATE' . 
after that simply call sendSms that have a Interface for all callbacks. smsId is a random unique auto generated Id that generated for every single sms that created by your app.
You can also set a Carrier Filter to make sure sms will sends from Specific carrier and it is optional.         

```java
SmsHandler smsHandler = new SmsHandler(this, "+0121212", dialogLayoutId);
        
// you can add optional carrier filter
smsHandler.setCarrierNameFilter("MCI");
        
smsHandler.sendSms("dialog message", "sms body", new MySmsManager.SMSManagerCallBack() {
    @Override
    public void afterSuccessfulSMS(int smsId) {        
    }

    @Override
    public void afterDelivered(int smsId) {
    }

    @Override
    public void afterUnSuccessfulSMS(int smsId, String message) {
    }

    @Override
    public void onCarrierNameNotMatch(int smsId, String message) {
    }
});
```

If you pass a dialog layout to SmsHandler it will show your custom dialog to confirm Send sms to user, if you don't want just pass 0 as dialogLayoutId. your custom dialog should have two Android Button with these id in you layout:

```xml
<Button
	android:id="@+id/send_button"
	...
/>
            
<Button
	android:id="@+id/cancel_button"
	...
/>
```           

It created with MVP architecture and Uses Dagger2 as DI container with these dependencies:

```groovy
compile 'com.google.dagger:dagger:2.7'
annotationProcessor 'com.google.dagger:dagger-compiler:2.7'
```           
           
So if you use dagger2 make sure that use compatible dependencies. I hope this library would be useful and wait for your comments.

this my weblog: http://www.mahditajik.ir
{'fraction_non_alphanumeric': 0.06666666666666667, 'fraction_numerical': 0.008225108225108226, 'mean_word_length': 2.6645519429024582, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 1}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5462262', 'n_tokens_mistral': 1294, 'n_tokens_neox': 1229, 'n_words': 506}